我有一个NumPy零矩阵:
import numpy as np
z = np.zeros((3,3), dtype=int) # array([[0, 0, 0],
# [0, 0, 0],
# [0, 0, 0]])
接下来,我有一些索引和一些值:
idx = np.array([[0, 0],
[1, 1],
[1, 2],
[2, 2]])
v = np.array([1, 3, 7, 2])
是否有任何NumPy函数可以将索引值设置为my值?获得如下信息:
z = array([[1, 0, 0],
[0, 3, 7],
[0, 0, 2]])
答案 0 :(得分:1)
您可以通过NumPy的indexing执行此操作,在该操作中,您可以为每个轴指定一个索引器作为NumPy数组:
>>> row, col = idx.T
>>> z[row, col] = v
>>> z
array([[1, 0, 0],
[0, 3, 7],
[0, 0, 2]])
答案 1 :(得分:1)
我相信您想fancy index
n[idx[:,0], idx[:,1]] = v
array([[1, 0, 0],
[0, 3, 7],
[0, 0, 2]])