> 
> 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

Reply via email to