[Numpy-discussion] is it a bug?
shuwj5460@16...
shuwj5460@16...
Thu Mar 12 20:08:47 CDT 2009
>
> On Wed, Mar 11, 2009 at 19:55, shuwj5460@163.com <shuwj5460@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?
More information about the Numpy-discussion
mailing list