gpt4 book ai didi

python - 映射具有重复索引的数组?

转载 作者:行者123 更新时间:2023-12-01 06:03:12 24 4
gpt4 key购买 nike

假设 numpy 中有三个数组:

a = np.zeros(5)
b = np.array([3,3,3,0,0])
c = np.array([1,5,10,50,100])

b 现在可以用作 a 和 c 的索引。例如:

   In [142]: c[b]
Out[142]: array([50, 50, 50, 1, 1])

有没有办法通过这种切片将连接到重复索引的值相加?与

a[b] = c

仅存储最后的值:

 array([ 100.,    0.,    0.,   10.,    0.])

我想要这样的东西:

a[b] += c

这会给出

 array([ 150.,    0.,    0.,   16.,    0.])

我正在将非常大的向量映射到二维矩阵上,并且真的希望避免循环......

最佳答案

NumPy 数组的 += 运算符根本无法按照您希望的方式工作,而且我不知道如何让它以这种方式工作。作为解决方法,我建议使用 numpy.bincount() :

>>> numpy.bincount(b, c)
array([ 150., 0., 0., 16.])

只需根据需要添加零即可。

关于python - 映射具有重复索引的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282149/

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