我有一个稀疏数组,如下所示:
import scipy
my_sparse_array = scipy.sparse.random(2000, 1000000, density=0.01, format='csr')
对于每一行,我有一个组: 组=[“A”,“A”,“B”,“C”,“D”]*400
基于这些组,我希望得到每列的总和,并输出一个数组,其中行现在是组的总和,而每列保持不变。你知道吗
如何使用稀疏矩阵有效地实现这一点?你知道吗
谢谢你, 杰克
编辑:
一种方法是执行以下操作:
import numpy as np
import pandas as pd
results = {}
group_set = set(groups)
for group in group_set:
indices = np.where(np.array(groups) == group)[0]
results[group] = my_sparse_array[indices, :].sum(axis=0).A1
final_result = pd.DataFrame(results)
然而,我想知道是否有一个更有效的方法,而不是循环通过组和子集。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐