[Numpy-discussion] 2D (or n-d) fancy indexing?

Zachary Pincus zachary.pincus@yale....
Wed Oct 8 20:00:16 CDT 2008


Hello all,

I'm doing something silly with images and am unable to figure out the  
right way to express this with "fancy indexing" -- or anything other  
than a brute for-loop for that matter.

The basic gist is that I have an array representing n images, of shape  
(n, x, y). I also have a "map" of shape (x, y), which contains indices  
in the range [0, n-1]. I then want to construct the "composite" image,  
of shape (x, y), with pixels selected from the n source images as per  
the indices in the map, i.e.:

composite[x, y] = images[map[x, y], x, y]
for all (x, y).

Now, I can't figure out if there's an easy way to express this in  
numpy. For that matter, I can't even figure out a simple way to do the  
1D version of the same:

composite[i] = images[map[i], i]
where composite and map have shape (m,), and images has shape (n, m).

Can anyone assist? Surely there's something simple that I'm just not  
seeing.

Thanks,

Zach


More information about the Numpy-discussion mailing list