当一个Numpy数组的索引在另一个numpy数组中给定时,如何给它的某些索引赋值?

bn31dyow  于 2023-01-26  发布在  其他
关注(0)|答案(1)|浏览(149)

我是Python新手,对NumPy更是如此,目前还找不到解决这个问题的方法。我有一个Numpy数组a = [1 4 6]和另一个b,其中包含3行和3列全零

[[0 0 0]
 [0 0 0]
 [0 0 0]]

我如何给a或B的3个下标赋值v我的想法是这样的

for x in range(a):
        b[x] = v

这不起作用。我也尝试过事先将a转换为list()

6tdlim6h

6tdlim6h1#

假设你想在扁平数组b的第n个索引中赋值v=1,你可以用途:

a = np.array([1, 4, 6])
b = np.zeros((3, 3))

b.flat[a] = 1

或者使用numpy.unravel_index

b[np.unravel_index(a, b.shape)] = 1

输出:

array([[0., 1., 0.],
       [0., 1., 0.],
       [1., 0., 0.]])

相关问题