# [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
```