Python 基于二维索引替换二维numpy数组元素
这个问题以前可能在某个地方被问过,但我在搜索后找不到任何问题,因此在这里发布 假设我有一个数组Python 基于二维索引替换二维numpy数组元素,python,arrays,numpy,indexing,Python,Arrays,Numpy,Indexing,这个问题以前可能在某个地方被问过,但我在搜索后找不到任何问题,因此在这里发布 假设我有一个数组A和一个索引数组idx。暂时让两个数组都是二维的 import numpy as np A = np.array([[3,3,4], [4,5,4], [3,4,5]]) idx = np.array([[1,1], [2,1], [1,0], [0
A
和一个索引数组idx
。暂时让两个数组都是二维的
import numpy as np
A = np.array([[3,3,4],
[4,5,4],
[3,4,5]])
idx = np.array([[1,1],
[2,1],
[1,0],
[0,0]])
现在,我想根据idx
中的索引将A
中的相应元素替换为0
。
基本上,我想做[code>A[idx]=0,这是行不通的
如何在不运行循环的情况下高效地执行此操作
优选地,所提议的解决方案应可扩展到更高维(3D及以上)阵列 您可以尝试:
A[idx[:,0], idx[:,1]]=0
输出:
[[0 3 4]
[0 0 4]
[3 0 5]]
如果尺寸过多,无法硬编码,可以使用:
A[tuple(idx.T)]=0
请签出较大尺寸的编辑。它确实有效。谢谢