关于python:确定scipy.sparse矩阵的字节大小?

Determining the byte size of a scipy.sparse matrix?

是否可以确定scipy.sparse矩阵的字节大小?在numpy中,可以通过执行以下操作来确定数组的大小:

1
2
3
4
import numpy as np

print(np.zeros((100, 100, 100).nbytes)
8000000

稀疏矩阵是由常规的numpy数组构造的,因此可以像常规数组一样,为其中任何一个数组获取字节计数。

如果只需要数组元素的字节数:

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

如果您想要构建稀疏矩阵所需的所有数组的字节计数,那么我认为您需要:

1
2
>>> print a.data.nbytes + a.indptr.nbytes + a.indices.nbytes
152