Comment obtenir la somme de chaque ligne et la somme de chaque colonne dans Scipy matrices creuses (csr_matrix et csc_matrix)?

J'ai une très grande Scipy sparse matrix ( CSR_MATRIX ). Je veux juste savoir comment je peux calculer la somme des valeurs pour chaque ligne et aussi la somme des valeurs de chaque colonne de la matrice.

J'ai un code qui fait la même opération, mais c'est à l'aide de CSC_MATRIX. Est-il rien de différent entre ces deux en ce qui concerne additionnant les lignes et les colonnes?

J'ai pensé que peut-être que je peux obtenir une réponse rapide que les autres peuvent également utiliser ou d'autre que je puisse le tester moi-même.

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

donc rowsums devrait être [3, 3, 15] et colsum devrait être [5, 5, 11].

Je sais que je peux utiliser de la matrice.getrow(i) et de la matrice.getcol(i) chaque ligne et chaque colonne et utiliser la fonction sum() pour obtenir la somme, mais ma préoccupation est la performance. J'ai besoin d'une solution plus efficace.

OriginalL'auteur alenrooni | 2013-12-16