Re: [SciPy-user] scipy_base.squeeze
Ok, this is due to the Matlab way of thinking I have. Obviously in Python/SciPy scalars are not a particular case of arrays and I understood that shape(b) = () in your example just means that. Couldn't this be a cause of type conversion issues, for example when a function returns a double or an array depending on the input data? (and squeeze seems to be a good example for that) JM. NB: note that help(squeeze) just tells % Help on function squeeze in module scipy_base.shape_base: % %squeeze(a) % Returns a with any ones from the shape of a removed which does not mean that the type of 'a' could be the same or could be changed depending on the result. oliphant@ee.byu.edu wrote:
I don't understand the problem. If you have a (1,1) array then according to the documentation squeeze should return an array with all dimensions of length one removed. Therefore, you end up with a zero-dimensional array (this is not an empty array...)
It seems to work for me:
a = array([[5]]) a.shape (1, 1) b = squeeze(a) shape(b) () b 5
This is not a "side effect" but a documented effect. If you want to ensure a 1d array as it seems you do, then you could use
b = atleast_1d(squeeze(a))
-Travis
participants (1)
-
Jean-Michel Philippe