[SciPy-dev] [Numpy-discussion] Re: How to handle a[...] in numpy?

Sasha ndarray at mac.com
Mon Jan 9 19:23:03 EST 2006


Attached patch implements indexing of zero rank arrays:

>>> x = array(42)
>>> x[...]
42
>>> x[()]
42
>>> x[()].dtype
<type 'int32_arrtype'>
>>> type(x[()])
<type 'int32_arrtype'>

Ellipsis and empty tuple are the only two valid indices.

So far there was only one +1 vote for the feature (from Francesc
Altet, who also suggested  that x[()] be allowed).  Does anyone object
to this feature?

I have also proposed to support x[...,newaxis] (see comment by
sdementen at http://www.scipy.org/wikis/numdesign/).  I will add this
feature if there is interest.

Finally, if we make x[...] valid for rank-0 arrays, should x[...] =
value be allowed as well? I think it should, applying the principle of
least surprized.  An additional consideration is that rank-0 arrays
are unhashable, but there is no obvious way to change their values.

The following example show that rank-0 arrays are in fact mutable (in
a non-obvious way):

>>> x = array(1)
>>> x.shape=(1,); x[0] = 42; x.shape=()
>>> x

Please comment on the following proposals:

1. x[...]
2. x[...] = value
3. x[..., newaxis]


-- sasha




More information about the NumPy-Discussion mailing list