gpt4 book ai didi

Python:非常大的稀疏矩阵中的 lil_matrix 与 csr_matrix

转载 作者:行者123 更新时间:2023-11-28 17:33:20 24 4
gpt4 key购买 nike

我想逐步构建一个非常大的稀疏矩阵。问题是 lil_matrix 占用了太多 RAM,以至于效率低下。例如,如果我想创建一个 2000 万 x 2000 万的 lil_matrix,它会完全耗尽我的 RAM。另一方面,csr_matrix 几乎不占用空间。然而,据称 csr_matrix 的修改效率很低。有没有其他方法可以在不占用太多 RAM 空间的情况下获得 lil_matrix 的好处?另外,为什么它一开始就占用了这么多空间,因为它应该是一个稀疏矩阵?

注意:真正的问题实际上不是创建这么大的矩阵,而是创建以下list:

list = [sp.lil_matrix((150,150)) for i in range(1000)]

这也炸毁了我的 RAM。

最佳答案

我并没有声称有完整的答案,但我觉得如果你看一下矩阵内部结构,你就会找到答案。

In [12]: s = sparse.csr_matrix((5,5))

In [13]: s.__dict__
Out[13]:
{'_shape': (5, 5),
'data': array([], dtype=float64),
'format': 'csr',
'indices': array([], dtype=int32),
'indptr': array([0, 0, 0, 0, 0, 0], dtype=int32),
'maxprint': 50}

In [14]: s.indptr.nbytes
Out[14]: 24

In [15]: l = sparse.lil_matrix((5,5))

In [16]: l.__dict__
Out[16]:
{'_shape': (5, 5),
'data': array([[], [], [], [], []], dtype=object),
'dtype': dtype('float64'),
'format': 'lil',
'maxprint': 50,
'rows': array([[], [], [], [], []], dtype=object)}

In [17]: l.data.nbytes
Out[17]: 40

In [18]: l.rows.nbytes
Out[18]: 40

关于Python:非常大的稀疏矩阵中的 lil_matrix 与 csr_matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com