[Numpy-discussion] Indexing by label in 3rd dimension

Warren Weckesser warren.weckesser at enthought.com
Fri Sep 16 11:43:39 EDT 2011


On Fri, Sep 16, 2011 at 10:18 AM, Benjamin Landenberger <
benjamin.landenberger at imtek.uni-freiburg.de> wrote:

> Hello list!
>
> I have an array *mask* of shape (a, b) and another array *intensities*
> of shape (N, a, b), where the values in *mask* range from 0 to N-1. It
> is somehow similar to label arrays in scipy.ndimage.
>
> Now I want to pick those entries from the first dimension of
> *intensities* which are given by *mask*. The returned array shall again
> wave shape (a, b).
>
> Can this be done with fancy indexing?
>


The choose() function can be used:

 In [19]: intensities
Out[19]:
array([[[ 1,  2,  3],
        [ 4,  5,  6],
        [ 7,  8,  9]],

       [[11, 12, 13],
        [14, 15, 16],
        [17, 18, 19]],

       [[21, 22, 23],
        [24, 25, 26],
        [27, 28, 29]]])

In [20]: mask
Out[20]:
array([[0, 0, 1],
       [1, 1, 1],
       [1, 2, 2]])

In [21]: choose(mask, intensities)
Out[21]:
array([[ 1,  2, 13],
       [14, 15, 16],
       [17, 28, 29]])


Warren



> Thank you,
>
> Ben
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20110916/0ddb568a/attachment.html>


More information about the NumPy-Discussion mailing list