Ho una matrice grande che vorrei convertire in un formato CSR sparse.Dati di accesso, indice colonna e dati row_ptr dalla matrice sparse CSR scipy
Quando faccio:
import scipy as sp
Ks = sp.sparse.csr_matrix(A)
print Ks
Dove A è denso, ottengo
(0, 0) -2116689024.0
(0, 1) 394620032.0
(0, 2) -588142656.0
(0, 12) 1567432448.0
(0, 14) -36273164.0
(0, 24) 233332608.0
(0, 25) 23677192.0
(0, 26) -315783392.0
(0, 45) 157961968.0
(0, 46) 173632816.0
ecc ...
posso ottenere vettori di indice di riga, indice di colonna, e il valore utilizzando:
Knz = Ks.nonzero()
sparserows = Knz[0]
sparsecols = Knz[1]
#The Non-Zero Value of K at each (Row,Col)
vals = np.empty(sparserows.shape).astype(np.float)
for i in range(len(sparserows)):
vals[i] = K[sparserows[i],sparsecols[i]]
Ma è possibile estrarre i vettori presumibilmente contenuti nel formato CSR sparse (Valore, Indice colonna, Puntatore riga)?
La documentazione di SciPy spiega che una matrice CSR potrebbe essere generata da quei tre vettori, ma vorrei fare il contrario, ottenere quei tre vettori.
Cosa mi manca?
Grazie per il tempo!