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.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to