[Numpy-discussion] Fancy indexing with masks

Han Genuit hangenuit@gmail....
Thu Sep 22 01:12:12 CDT 2011


2011/9/20 Stéfan van der Walt <stefan@sun.ac.za>

> On Tue, Sep 20, 2011 at 12:43 AM, Robert Kern <robert.kern@gmail.com>
> wrote:
> > If the array is short in a dimension, it gets implicitly continued
> > with Falses. You can see this in one dimension:
>
> [...]
>
> > I honestly don't know if this is documented or tested anywhere or even
> > if this existed in older versions.
>
> The behaviour is already present in 1.4, so I guess it's too late to
> insert a shape check now?
>
> There already is a shape check present in the development version[1]:

>>> a = np.arange(10)
>>> b = np.array([False, True, False])
>>> a[b]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (10) (3)

But it does not seem to work on multidimensional arrays:

>>> c = np.arange(12).reshape((4,3))
>>> c[b]
array([[3, 4, 5]])

I also noticed that it does strange things when using a list:

>>> c[[True, False, True]]
array([[3, 4, 5],
       [0, 1, 2],
       [3, 4, 5]])

Regards,
Han

[1] See also:
http://mail.scipy.org/pipermail/numpy-discussion/2011-July/057870.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20110922/2ce4ef24/attachment.html 


More information about the NumPy-Discussion mailing list