[Numpy-discussion] Strange inversion in shape with some slices

Travis Oliphant oliphant at enthought.com
Tue Nov 17 14:24:21 EST 2009


On Nov 17, 2009, at 12:33 PM, Sebastian Haase wrote:

> On Tue, Nov 17, 2009 at 5:40 PM,  <josef.pktd at gmail.com> wrote:
>> On Tue, Nov 17, 2009 at 11:24 AM, Jean-Baptiste Rudant
>> <boogaloojb at yahoo.fr> wrote:
>>> Hello,
>>> I think there's something strange with shape when a slice is given  
>>> by an
>>> array.
>>> import numpy as N
>>> my_array = N.ones((2, 3, 6))
>>> ind = N.arange(4)
>>> #you hope to find (3, 4)
>>> print my_array[0, :, ind].shape
>>> print my_array[0, :, 0:4].shape
>>> print my_array[0][:, ind].shape
>>> print my_array[0][:, 0:4].shape
>>> """
>>> (4, 3)
>>> (3, 4)
>>> (3, 4)
>>> (3, 4)
>>> """
>>> Jean-Baptiste Rudant
>>
>> there was a long thread on this with the explanation in March, title
>> "is it a bug?"
>>
> The thread is here:
> http://www.mail-archive.com/numpy-discussion@scipy.org/msg16300.html
>
> It looks to me like violating the principle of "least surprise".
> My reading of that thread is, that the observed "bug" is mostly a
> consequence coming from the way fancy indexing is implemented. How
> about deprecating this kind of index mixing !?

I don't think this is really a case of the way fancy indexing is  
implemented.  It could have been done in many ways.    The problem is  
one of real ambiguity in the general case and the fact that there  
wasn't any code written to handle the less ambiguous special-cases  
like this one.

There are real applications of index mixing, so turning it off is not  
an option.     We could perhaps add better handling of circumstances  
like this, however, with appropriate warnings and transitions.

-Travis





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20091117/5d0273c1/attachment.html>


More information about the NumPy-Discussion mailing list