On Mon, Oct 13, 2008 at 12:12, Michael Hearne <mhearne@usgs.gov> wrote:
Using numpy version 1.1.0.dev5077 Using scipy version 0.7.0.dev4174
on Mac OS X
If I do the following: x = zeros([1,1]) x[0] = 3.4756 y = squeeze(x)
What is y? When I print or do arithmetic with y, it seems like it's a scalar.
Why do you say that? It looks like a 0-dim array to me. In [1]: from numpy import * In [2]: x = zeros([1,1]) In [3]: x Out[3]: array([[ 0.]]) In [4]: x[0] = 3.4756 In [5]: x Out[5]: array([[ 3.4756]]) In [6]: y = squeeze(x) In [7]: y Out[7]: array(3.4756) In [8]: y.shape Out[8]: ()
However, the type() function seems to indicate that it's a numpy.ndarray, but with 0 dimensionality.
Yup.
Questions: How do I detect when I'm in this state?
isinstance(y, numpy.ndarray) and y.shape == ()
How can I convert this from a (sort of) scalar into an array with length of one?
atleast_1d(y) -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco