[Numpy-discussion] Is this an indexing bug?
oliphant.travis at ieee.org
Wed Jun 20 14:43:35 EDT 2007
Sturla Molden wrote:
> >>> x = numpy.arange(100).reshape((1,10,10))
> >>> x[0,:,numpy.arange(5)].shape
> (5, 10)
> >>> x[:,:,numpy.arange(5)].shape
> (1, 10, 5)
> It looks like a bug that needs to be squashed.
These are both correct. See my previous posts about the rule.
The first case is exactly the example we saw before: we start with a
(1,10,10)-shaped array and replace the first and last-dimension
(1,10)-shaped array with a (5,)-shaped array. Not having a clear place
to put the extracted (5,)-shaped subspace, it is tacked on to the front.
In the second example, the last-dimension (10,)-shaped sub-space is
replaced with a (5,)-shaped sub-space. There is no ambiguity in this
case and the result is a (1,10,5)-shaped array.
There is no bug here. Perhaps unexpected behavior with "advanced
indexing" combined with single-integer indexing in separated dimensions
but no bug. The result, does follow an understandable and generalizable
In addition, you can get what you seem to want very easily using
More information about the NumPy-Discussion