如何每次更改二维 numpy 数组的不同元素

how to change a different element of a 2d numpy array each time

我有一个 numpy 二维数组(矩阵):

[[1,2,3],
 [4,5,6],
 [7,8,9]]

我想根据这个矢量掩码更改值

[0,2,1]

因此我想更改

的值
1, 6 and 8

例如

2, 9 and 24

向量与矩阵一样长

您可以使用 arange 对行进行索引,以配合您的列掩码索引:

import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
])

rows = np.arange(len(a))
columns = [0, 2, 1]
values = [2, 9, 24]

a[rows, columns] = values

输出:

array([[ 2,  2,  3],
       [ 4,  5,  9],
       [ 7, 24,  9]])