【问题标题】:Determining the byte size of a scipy.sparse matrix?确定 scipy.sparse 矩阵的字节大小?
【发布时间】:2012-06-25 17:53:25
【问题描述】:

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

import numpy as np

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

【问题讨论】:

    标签: python scipy sparse-matrix


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 很好,效果很好。我对第一种情况更感兴趣,但第二种情况很有趣。该内存大小是否代表整个对象?
    • 不,只是数组。见stackoverflow.com/questions/33978/…
    • 对于coo_matrix,应该是a.col.nbytes + a.row.nbytes + a.data.nbytes
    • 难道没有适用于所有类型稀疏矩阵的通用方法吗?谢谢!
    • 到目前为止我发现的最佳解决方案是通过泡菜:stackoverflow.com/a/59228005/1822138
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 2018-11-23
    • 2012-05-28
    • 2011-09-19
    • 2011-07-22
    • 2015-04-25
    • 2013-01-08
    • 2011-05-18
    相关资源
    最近更新 更多