2 回答
TA贡献1824条经验 获得超8个赞
您可以为此使用numpy.bincount 。
import numpy as np
a = np.array([[2. , 0.125],
[3. , 0.125],
[3. , 0.125],
[4. , 0.125],
[4. , 0.125],
[5. , 0.125],
[6. , 0.125],
[5. , 0.125]],
)
def groupby(a):
"""
>>> groupby(a)
array([[2. , 0.125],
[3. , 0.25 ],
[4. , 0.25 ],
[5. , 0.25 ],
[6. , 0.125]])
"""
values, indices = np.unique(a[:, 0], return_inverse=True)
sum = np.bincount(indices, weights=a[:, 1])
return np.c_[values, sum]
TA贡献1866条经验 获得超5个赞
如果您考虑其他套餐,pandas是一个不错的选择:
pd.DataFrame(a).groupby([0])[1].sum()
输出:
0
2.0 0.125
3.0 0.250
4.0 0.250
5.0 0.250
6.0 0.125
Name: 1, dtype: float64
添加回答
举报