确定scipy.sparse矩阵的字节大小?

ebr*_*ert 24 python scipy sparse-matrix

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

import numpy as np

print(np.zeros((100, 100, 100).nbytes)
8000000
Run Code Online (Sandbox Code Playgroud)

use*_*424 38

稀疏矩阵由常规numpy数组构成,因此您可以像常规数组一样获取其中任何一个的字节数.

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

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

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

>>> print a.data.nbytes + a.indptr.nbytes + a.indices.nbytes
152
Run Code Online (Sandbox Code Playgroud)

  • 对于coo_matrix,它应该是a.col.nbytes + a.row.nbytes + a.data.nbytes (4认同)
  • 是否存在适用于所有类型稀疏矩阵的通用方法?谢谢! (2认同)