我有一个非常大的Scipy稀疏矩阵 (CSR_MATRIX)。我想知道如何计算矩阵每行和每列的值之和。
我已经有一段代码可以完成同样的操作,但它使用的是CSC_MATRIX。这两者在求行列和方面有什么不同吗?
我想也许我可以得到一个快速的回复,其他人也可以用得上,否则我可以自己测试。
from scipy.sparse import *
from scipy import *
row = array([0,0,1,2,2,2])
col = array([0,2,2,0,1,2])
data = array([1,2,3,4,5,6])
csr_matrix( (data,(row,col)), shape=(3,3) ).todense()
rowsums = []
colsums = []
#compute rowsums and colsums
所以rowsums
应该是[3, 3, 15]
,colsum
应该是[5, 5, 11]
。
我知道可以使用matrix.getrow(i)和matrix.getcol(i)来获取每行和每列,并使用sum()函数来获取总和,但我的关注点是性能。我需要一个更有效率的解决方案。
a.sum(axis=1)
? - Vlad Fedo