检索SciPy稀疏矩阵消耗的字节数

2024-04-26 20:17:07 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我想监视SciPy稀疏矩阵mat占用的内存。在NumPy中,我会利用nbytes属性,但在SciPy中似乎没有这样的东西。 如何检索这些信息?在


Tags: 内存numpy信息利用属性矩阵scipy我会
1条回答
网友
1楼 · 发布于 2024-04-26 20:17:07

我有稀疏矩阵X

In [605]: X
Out[605]: 
<100x100 sparse matrix of type '<class 'numpy.float64'>'
    with 1000 stored elements in Compressed Sparse Row format>

getsizeof没有告诉我任何有用的信息

^{pr2}$

对于存储在3个数组中的csr矩阵,稀疏数据和索引如下:

In [612]: X.data.nbytes
Out[612]: 8000
In [613]: X.indices.nbytes
Out[613]: 4000
In [614]: X.indptr.nbytes
Out[614]: 404

所以大概总空间就是这些值的总和。在

对于coo格式

In [615]: Xc=X.tocoo()
In [616]: Xc.data.nbytes
Out[616]: 8000
In [617]: Xc.row.nbytes
Out[617]: 4000
In [618]: Xc.col.nbytes
Out[618]: 4000

我们可以从shape、dtype和nnz计算这些值;例如8字节*1000,4bytes*1000,4bytes*X.shape[0]等等

其他格式需要了解它们的数据存储方法(例如lildok,等等)。在

相关问题 更多 >