2012-06-23 23 views

Respuesta

26

una matriz dispersa se construye a partir de matrices numpy regulares, para que pueda obtener el número de bytes por ninguna de ellas como si se tratara de una matriz regular .

Si lo que desea es el número de bytes de los elementos de la matriz:

>>> from scipy.sparse import csr_matrix 
>>> a = csr_matrix(np.arange(12).reshape((4,3))) 
>>> a.data.nbytes 
88 

Si quieres la cantidad de bytes de todas las matrices necesarias para construir la matriz dispersa, entonces yo creo que usted quiere:

>>> print a.data.nbytes + a.indptr.nbytes + a.indices.nbytes 
152 
+0

Bien, eso funcionó muy bien. Estoy más interesado en el primer caso, pero el segundo es interesante. ¿Ese tamaño de memoria representa el objeto completo? – ebressert

+0

No, solo las matrices. Ver http://stackoverflow.com/questions/33978/find-out-how-much-memory-is-being-used-by-an-object-in-python. – user545424

+2

Para coo_matrix, debe ser a.col.nbytes + a.row.nbytes + a.data.nbytes – czxttkl

Cuestiones relacionadas