【发布时间】:2022-01-13 17:06:00
【问题描述】:
我有两个长度相同的数组(在本例中为 6)。一店floats:
a = np.array([0.2, 0.01, 0.5, 0.7, 0., 0.002])
第二个存储索引(因此,int 值):
indices = np.array([4, 9, 0, 2, 2, 4])
在我的代码中,我初始化了另一个数组,它的长度通常与a 和indices 的长度不同,例如本例中的 10:
c = np.zeros(10)
我想找到一种 Pythonic 方式来完成以下任务:
for i in range(len(indices)):
c[indices[i]] += a[i]
在这个例子中,产生:
[0.5 0. 0.7 0. 0.202 0. 0. 0. 0. 0.01 ]
我尝试查看this brilliant example,但我不确定如何在此处应用。
【问题讨论】:
-
indices = np.array([4,**9**, 0, 2, 2, 4])...a没有十项。 -
@wwii 仔细看,它是
a[i],不是a[indices[i]],请查看我的答案,numpyufuncs 为这个确切的用例提供了一些东西,.at方法
标签: python numpy for-loop unique