> > On Wed, Mar 11, 2009 at 19:55, shuwj5...@163.com <shuwj5...@163.com> wrote: > > Hi, > > > > import numpy as np > > x = np.arange(30) > > x.shape = (2,3,5) > > > > idx = np.array([0,1]) > > e = x[0,idx,:] > > print e.shape > > #----> return (2,5). ok. > > > > idx = np.array([0,1]) > > e = x[0,:,idx] > > print e.shape > > > > #-----> return (2,3). I think the right answer should be (3,2). Is > > # ? ? ? it a bug here? my numpy version is 1.2.1. > > It's certainly weird, but it's working as designed. Fancy indexing via > arrays is a separate subsystem from indexing via slices. Basically, > fancy indexing decides the outermost shape of the result (e.g. the > leftmost items in the shape tuple). If there are any sliced axes, they > are *appended* to the end of that shape tuple. > x = np.arange(30) x.shape = (2,3,5)
idx = np.array([0,1,3,4]) e = x[:,:,idx] print e.shape #---> return (2,3,4) just as me think. e = x[0,:,idx] print e.shape #---> return (4,3). e = x[:,0,idx] print e.shape #---> return (2,4). not (4,2). why these three cases excute so # differently? _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion