NumPy用于设置行和列的索引

时间:2018-07-24 02:25:13

标签: python numpy indexing

我有一个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]])

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]])