gpt4 book ai didi

python - 赋值给数组,添加多份索引

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

所以我有这个数组,对吧?

a=np.zeros(5)

我想在给定的索引处为其添加值,其中索引可以重复。

例如

a[[1, 2, 2]] += [1, 2, 3]

我希望它生成 array([ 0., 1., 5., 0., 0.]),但我得到的答案是 array([ 0., 1., 3., 0., 0.]).

我希望它能与多维数组和可广播索引等一起使用。有什么想法吗?

最佳答案

您需要使用 np.add.at解决 += 遇到的缓冲问题(值不会在重复索引处累积)。指定数组、索引和要在这些索引处添加的值:

>>> a = np.zeros(5)
>>> np.add.at(a, [1, 2, 2], [1, 2, 3])
>>> a
array([ 0., 1., 5., 0., 0.])

at 也是其他 ufunc 的一部分(乘法、除法等)。此方法也适用于多维数组。

关于python - 赋值给数组,添加多份索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30236481/

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