gpt4 book ai didi

python-从具有相同行的向量中给定索引替换numpy数组的列中的值

转载 作者:行者123 更新时间:2023-12-04 09:10:02 26 4
gpt4 key购买 nike

A = np.zeros(shape = (3,4))
A = [[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]

B = np.asarray[[2],[0],[3]]
如果没有 for 循环,是否有一种简单的方法来更改 A 中的 a 组件的值(例如更改为 1),给定 B 中的索引
这样:
A = [[0 0 1 0]
[1 0 0 0]
[0 0 0 1]]
我已经能够通过 for 循环获得这个输出,但如果它不是为了高维数组的可伸缩性,我会更喜欢它。

最佳答案

看看 numpy 的 advanced indexing .
你可以做

A[[0, 1, 2], [2, 0, 3]] = 1
我们正在索引以获取 3 个位置并设置一个值,因此用于索引的列表每个都是 len 3。和 A有 2 个维度,因此我们使用两个列表(如果您想获取完整行,也可以只使用一个列表)。
它也适用于数组
A[np.arange(A.shape[0]), [2, 0, 3]] = 1

关于python-从具有相同行的向量中给定索引替换numpy数组的列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63369933/

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