假设img是一个二维numpy数组。还假设x和y是整数值的2维numpy数组,其形状与img相同。考虑:
newImg = img[x, y]
newImg现在是一个与img形状相同的二维数组,其中newImg [i,j] == img [x [i,j],y [i,j]]用于所有i和j。
我想将此过程概括为任意数量的维度。也就是说,让img成为d维numpy数组,并且对于范围(0,d)中的i,取x [i]为与img具有相同形状的整数值d维numpy数组。我基本上想要的是:
newImg = img[x[0], x[1], ..., x[d-1]]
这显然是伪代码,预计不起作用。
如何使用NumPy执行此操作?
答案 0 :(得分:1)
您是否尝试过简单
newImg = img[x]
看起来这应该有效!
我假设x
是满足以下条件的整数数组的列表或元组
len(x) == img.ndim
all(a.shape == img.shape for a in x)
似乎与你所描述的相符。