所以我有一个numpy数组:
array([[2. , 0.125],
[3. , 0.125],
[3. , 0.125],
[4. , 0.125],
[4. , 0.125],
[5. , 0.125],
[5. , 0.125],
[6. , 0.125]])
如果第一个匹配,我想将这些条目合并在一起:
array([[2. , 0.125],
[3. , 0.25 ],
[4. , 0.25 ],
[5. , 0.25 ],
[6. , 0.125]])
他们有没有解决这个问题的方法吗?
您可以为此使用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]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句