[Numpy-discussion] Fancy-indexing reorders output in corner cases?
Zachary Pincus
zachary.pincus at yale.edu
Mon May 14 19:33:28 EDT 2012
Hello all,
The below seems to be a bug, but perhaps it's unavoidably part of the indexing mechanism?
It's easiest to show via example... note that using "[0,1]" to pull two columns out of the array gives the same shape as using ":2" in the simple case, but when there's additional slicing happening, the shapes get transposed or something.
In [2]: numpy.version.version # latest git version
Out[2]: '1.7.0.dev-3bbbbd4'
In [3]: d = numpy.empty((10, 9, 8, 7))
In [4]: d[:,:,:,[0,1]].shape
Out[4]: (10, 9, 8, 2)
In [5]: d[:,:,:,:2].shape
Out[5]: (10, 9, 8, 2)
In [6]: d[:,0,:,[0,1]].shape
Out[6]: (2, 10, 8)
In [7]: d[:,0,:,:2].shape
Out[7]: (10, 8, 2)
In [8]: d[0,:,:,[0,1]].shape
Out[8]: (2, 9, 8)
In [9]: d[0,:,:,:2].shape
Out[9]: (9, 8, 2)
Oddly, this error can appear/disappear depending on the position of the other axis sliced:
In [14]: d = numpy.empty((10, 9, 8))
In [15]: d[:,:,[0,1]].shape
Out[15]: (10, 9, 2)
In [16]: d[:,0,[0,1]].shape
Out[16]: (10, 2)
In [17]: d[0,:,[0,1]].shape
Out[17]: (2, 9)
This cannot be the expected behavior, right?
Zach
More information about the NumPy-Discussion
mailing list