gpt4 book ai didi

python - 输入数组相等时索引矩阵元素

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:35 24 4
gpt4 key购买 nike

我有一个矩阵,我希望能够在不使用循环的情况下使用两个数组对某些元素进行索引时更改它们的值

例如

import numpy as np

A = np.array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
b = np.array([0, 1, 2])
c = np.array([2, 3, 1, 1])

如果 b 中的索引 i 等于 c 中的索引 j 则访问 A[i,j]

我试过了

A[b, c] = 1

A[b == c] = 1

但我没有得到正确的结果我相信结果应该是

A = array([[0, 0, 0, 0],
[0, 0, 1, 1],
[1, 0, 0, 0]])

最佳答案

您可以使用 numpy.meshgrid 将一维索引数组扩展为二维索引数组:

import numpy as np

A = np.array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
b = np.array([0, 1, 2])
c = np.array([2, 3, 1, 1])

C,B = np.meshgrid(c,b)
A[B==C] = 1

print(A)

给予

[[0 0 0 0]
[0 0 1 1]
[1 0 0 0]]

关于python - 输入数组相等时索引矩阵元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54415083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com