【发布时间】:2021-02-08 12:18:11
【问题描述】:
有没有办法通过 numpy 中的多列聚合来创建一个组? 我试图用这个模块做到这一点:https://github.com/ml31415/numpy-groupies 目标是获得比 pandas 更快的 groupby。 例如:
group_idx = np.array([
np.array([4, 3, 3, 4, 4, 1, 1, 1, 7, 8, 7, 4, 3, 3, 1, 1]),
np.array([4, 3, 2, 4, 7, 1, 4, 1, 7, 8, 7, 2, 3, 1, 14 1]),
np.array([1, 2, 3, 4, 5, 1, 1, 2, 3, 4, 5, 4, 2, 3, 1, 1])
]
a = np.array([1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 5, 4, 2, 3, 1, 1])
result = aggregate(group_idx, a, func='sum')
应该像 pandas df.groupby(['column1','column2','column3']).sum().reset_index()
【问题讨论】:
-
group_idx中的都是正数吗? -
是的,group_idx 中只有正值。
-
你可以添加对
numba的依赖吗? -
当然,我认为这是可能的。
-
你能告诉我们确切的输出格式吗?您是否正在寻找带有索引和求和的二维数组输出?
标签: python pandas performance numpy