我有一個 3D numpy 零數(shù)組,尺寸為 CxHxW(在本例中,C=4、H=2 和 W=3):A = np.array([[[0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0]] [[0, 0, 0], [0, 0, 0]] [[0, 0, 0], [0, 0, 0]]])我還有一個二維索引數(shù)組,尺寸為 HxW,這樣數(shù)組中的每個值都是 [0, C-1] 之間的有效索引B = np.array([[2, 3, 0], [3, 1, 2]])有沒有一種快速的方法,使用向量化來修改數(shù)組 A,使得 A[B[i][j]][i][j] = 1,對于所有有效的 i、j?A = np.array([[[0, 0, 1], [0, 0, 0]], [[0, 0, 0], [0, 1, 0]] [[1, 0, 0], [0, 0, 1]] [[0, 1, 0], [1, 0, 0]]]) 謝謝你!
1 回答

互換的青春
TA貢獻(xiàn)1797條經(jīng)驗 獲得超6個贊
您似乎正在尋找put_along_axis:
np.put_along_axis(A,?B[None,...],?1,?0)
請注意,第二個參數(shù)需要與第一個參數(shù)具有相同的維數(shù),這就是為什么B[None,...]
使用 而不是B
。
添加回答
舉報
0/150
提交
取消