Ho una matrice sparsa Scipy molto grande (CSR_MATRIX). Voglio solo sapere come posso calcolare la somma dei valori per ogni riga e anche la somma dei valori per ogni colonna della matrice.Come ottenere la somma di ogni riga e somma di ogni colonna nelle matrici sparse di Scipy (csr_matrix e csc_matrix)?
Ho un codice che esegue la stessa operazione ma utilizza CSC_MATRIX. C'è qualcosa di diverso tra questi due riguardo alla somma delle righe e delle colonne?
Ho pensato che forse potrei ottenere una risposta rapida che gli altri possono utilizzare oppure posso testare da solo.
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
così rowsums
dovrebbe essere [3, 3, 15]
e colsum
dovrebbe essere [5, 5, 11]
.
So che posso usare matrix.getrow (i) e matrix.getcol (i) per ottenere ogni riga e colonna e utilizzare la funzione sum() per ottenere la somma, ma la mia preoccupazione è la prestazione. Ho bisogno di una soluzione più efficiente.
La ringrazio molto per il vostro grande aiuto. Ho provato la tua soluzione e ha funzionato fantastico. – alenrooni