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
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
No, solo las matrices. Ver http://stackoverflow.com/questions/33978/find-out-how-much-memory-is-being-used-by-an-object-in-python. – user545424
Para coo_matrix, debe ser a.col.nbytes + a.row.nbytes + a.data.nbytes – czxttkl