如何在numpy中执行此数组索引

ajw*_*ood 5 python arrays numpy

给定一个索引数组I,如何设置D索引不存在的数据数组的值I

示例:如何我得到AID

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]] )
Run Code Online (Sandbox Code Playgroud)

编辑:我在寻找如何做到这一点在一杆的情况下,Id是大.

Fre*_*Foo 10

简单方案:

A = zeros(D.shape)
for i, j in I:
    A[i, j] = D[i, j]
Run Code Online (Sandbox Code Playgroud)

矢量:

A = zeros(D.shape)
i, j = I.T
A[i, j] = D[i, j]
Run Code Online (Sandbox Code Playgroud)