El valor de acceso, el índice de la columna y los datos de row_ptr de la matriz dispersa CSR scipy

Tengo una matriz grande que me gustaría convertir a formato CSR disperso.

Cuando lo hago:

import scipy as sp Ks = sp.sparse.csr_matrix(A) print Ks 

Donde A es denso, obtengo

  (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 

etc …

Puedo obtener vectores de índice de fila, índice de columna y valor usando:

 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]] 

Pero, ¿es posible extraer los vectores supuestamente contenidos en el formato CSR disperso (valor, índice de columna, puntero de fila)?

La documentación de SciPy explica que se podría generar una matriz CSR a partir de esos tres vectores, pero me gustaría hacer lo contrario, eliminar esos tres vectores.

¿Qué me estoy perdiendo?

¡Gracias por el tiempo!

 value = Ks.data column_index = Ks.indices row_pointers = Ks.indptr 

Creo que estos atributos no están documentados, lo que puede hacer que estén sujetos a cambios, pero los he usado en varias versiones de scipy.