[Numpy-discussion] Matching 0-d arrays and NumPy scalars

Stefan van der Walt stefan@sun.ac...
Thu Feb 21 17:17:15 CST 2008


On Thu, Feb 21, 2008 at 12:08:32PM -0500, Alan G Isaac wrote:
> On Thu, 21 Feb 2008, Konrad Hinsen apparently wrote:
> 
> > What I see as more fundamental is the behaviour of Python container 
> > objects (lists, sets, etc.). If you add an object to a container and 
> > then access it as an element of the container, you get the original 
> > object (or something that behaves like the original object) without 
> > any trace of the container itself. 
> 
> I am not a CS type, but your statement seems related to
> a matrix behavior that I find bothersome and unnatural::
> 
>     >>> M = N.mat('1 2;3 4')
>     >>> M[0]
>     matrix([[1, 2]])
>     >>> M[0][0]
>     matrix([[1, 2]])

This is exactly what I would expect for matrices: M[0] is the first
row of the matrix.  Note that you don't see this behaviour for
ndarrays, since those don't insist on having a minimum of
2-dimensions.

In [2]: x = np.arange(12).reshape((3,4))

In [3]: x
Out[3]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

In [4]: x[0][0]
Out[4]: 0

In [5]: x[0]
Out[5]: array([0, 1, 2, 3])

Regards
Stefan


More information about the Numpy-discussion mailing list