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

Travis Oliphant oliphant.travis at ieee.org
Tue Jan 10 09:47:25 CST 2006


Sasha wrote:

>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
>>>>        
>>>>
>
>  
>
Generally, the array scalars are supposed to replace rank-0 arrays.  
However, this may be too ambitious and as long as the rank-0 arrays are 
there, they may as well be useful.

>Please comment on the following proposals:
>
>1. x[...]
>  
>
+1

>2. x[...] = value
>  
>
+1

>3. x[..., newaxis]
>  
>
+1

>
>  
>




More information about the Scipy-dev mailing list