给定一个索引数组 I
,如何设置索引不存在于 I
中的数据数组 D
的值?
示例:如何从I
和D
得到A
?
I = array( [[1,1], [2,2], [3,3]] )
D = array( [[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 1, 2, 3],
[ 4, 5, 6, 7, 8, 9],
[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 1, 2, 3]] )
A = array( [[ 0, 0, 0, 0, 0, 0],
[ 0, 8, 0, 0, 0, 0],
[ 0, 0, 6, 0, 0, 0],
[ 0, 0, 0, 4, 0, 0],
[ 0, 0, 0, 0, 0, 0]] )
编辑:我正在寻找如何在 I
和 d
很大的情况下一次完成此操作。
最佳答案
简单的解决方案:
A = zeros(D.shape)
for i, j in I:
A[i, j] = D[i, j]
矢量化:
A = zeros(D.shape)
i, j = I.T
A[i, j] = D[i, j]
关于python - 我如何在 numpy 中做这个数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8808597/