gpt4 book ai didi

python - 使用数组作为索引增加 numpy 数组元素

转载 作者:太空狗 更新时间:2023-10-30 02:29:08 24 4
gpt4 key购买 nike

我正在尝试有效地更新 numpy 数组 A 的一些元素,使用另一个数组 b 来指示要更新的 A 元素的索引。但是 b 可以包含被忽略的重复项,而我想被考虑在内。我想避免循环 b。为了说明这一点:

>>> A = np.arange(10).reshape(2,5)
>>> A[0, np.array([1,1,1,2])] += 1
>>> A
array([[0, 2, 3, 3, 4],
[5, 6, 7, 8, 9]])

而我希望输出为:

array([[0, 3, 3, 3, 4],
[5, 6, 7, 8, 9]])

有什么想法吗?

最佳答案

要正确处理重复索引,您需要使用 np.add.at 而不是 +=。因此,要更新 A 的第一行,最简单的方法可能是执行以下操作:

>>> np.add.at(A[0], [1,1,1,2], 1)
>>> A
array([[0, 4, 3, 3, 4],
[5, 6, 7, 8, 9]])

可以找到ufunc.at 方法的文档here .

关于python - 使用数组作为索引增加 numpy 数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34069151/

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