如果数组中第一列的值相同,如何求和第二列的值?
例如,如果我有一个数组[0,1],[1,1],[1,2],[2,5],[2,6]
。结果应为[0,1],[1,3],[2,11]
。
就我而言,我使用的是numpy数组,如果有区别的话。
python大神给出的解决方案
import numpy as np
a = np.array([[0, 1],
[1, 1],
[1, 2],
[2, 5],
[2, 6]])
d = {}
for k, v in a:
d[k] = d.get(k, 0) + v
b = np.array(d.items())
退货
b = np.array([[ 0, 1],
[ 1, 3],
[ 2, 11]])
或单行
from collections import Counter
b = np.array(sum((Counter({k:v}) for k,v in a), Counter()).items())