假设我有一个像这样的numpy数组: [1,2,3,4,5,6] 还有另一个数组: [0,0,1,2,2,1] 我想按组(第二个数组)对第一个数组中的项目进行求和,并按组号顺序获得n组结果(在这种情况下,结果将是[3, 9, 9])。我该如何在numpy中实现此操作?
假设我有一个像这样的numpy数组: [1,2,3,4,5,6] 还有另一个数组: [0,0,1,2,2,1] 我想按组(第二个数组)对第一个数组中的项目进行求和,并按组号顺序获得n组结果(在这种情况下,结果将是[3, 9, 9])。我该如何在numpy中实现此操作?
l = [1,2,3,4,5,6]
g = [0,0,1,2,2,1]
from itertools import izip
from operator import itemgetter
from collections import defaultdict
def group_sum(l, g):
groups = defaultdict(int)
for li, gi in izip(l, g):
groups[gi] += li
return map(itemgetter(1), sorted(groups.iteritems()))
print group_sum(l, g)
[3, 9, 9]