Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用numpy数组索引numpy数组,任意维_Python_Arrays_Numpy - Fatal编程技术网

Python 用numpy数组索引numpy数组,任意维

Python 用numpy数组索引numpy数组,任意维,python,arrays,numpy,Python,Arrays,Numpy,假设img是一个二维numpy数组。还假设x和y是与img形状相同的整数值二维numpy数组。考虑: 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]

假设img是一个二维numpy数组。还假设x和y是与img形状相同的整数值二维numpy数组。考虑:

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做到这一点呢?

你试过了吗

newImg = img[x]
看起来这应该管用

我假设
x
是满足以下条件的整数数组的列表或元组

len(x) == img.ndim
all(a.shape == img.shape for a in x)

这似乎与你描述的相符

我觉得没那么简单。下面有一个例子(它太大了,不能放在这个评论中。)哦,等等,我还没有尝试过将x作为数组的元组。我来试试。对不起,数组的元组可以工作。注意,这就是解决方案。在我的问题中,我假设x是一个数组的数组。元组有效。