Python numpy:对第二个数组中有选择地给定信息的数组求和



假设我有一个N维数组,例如:

A = [ [ 1, 2] ,
[6, 10] ]

以及定义与的每个值相关联的索引的另一个阵列B

B = [[0, 1], [1, 0]]

我想获得一个1D列表或数组,对于每个索引,它包含与该索引相关联的a值的总和。例如,我们想要

C = [11, 8]

有没有一种方法可以有效地做到这一点,而不需要手动在数组上循环?

编辑:为了更清楚地说明我想要什么,如果我们现在取A相同,B等于:

B=[[1,1],[1,1]]

然后我想把A的所有值加在C的索引1中,得到

C=[0,19]

或者我可以写一个代码片段:

C = np.zeros(np.max(B))
for i in range(...):
for j in range(...):
C[B[i,j]] += A[i,j]
return C

我想我找到了目前最好的答案。

我可以使用:

np.histogram(B, weights = A)

这段代码提供了我想要的解决方案。

最新更新