【问题标题】:Maximum size sparse matrix NumPy最大尺寸稀疏矩阵 NumPy
【发布时间】:2018-02-22 01:42:58
【问题描述】:

我正在研究一个模型,该模型反映了创新在N 个人的社会中的传播。我有一个大小为NxN 的邻接矩阵A,注意这个邻接矩阵是稀疏的。

我想为NxN=10^7 进行模拟。我首先尝试了Matlab,但不幸的是Matlab无法处理NxN>10^4

是否可以使用 NumPy 进行模拟?

【问题讨论】:

  • Numpy 和 Matlab 在底层使用非常相似的 C 例程。如果 Matlab 不能处理它,我严重怀疑 numpy 可以。请查看使用大数据工具的替代方案。 PySpark 是一个很好的开始。
  • N*N = 10^14.........您可能需要不同的表示;你的稀疏矩阵中有多少人?
  • 对不起,我的意思是 NxN = 10^7,我编辑了我的问题。

标签: python numpy max sparse-matrix


【解决方案1】:

Scipy 可以处理 NxN 稀疏矩阵,N=10^7

import scipy.sparse as sparse
N = 10e7
sparse.bsr_matrix((N, N))

输出:

<100000000x100000000 sparse matrix of type '<class 'numpy.float64'>'
    with 0 stored elements (blocksize = 1x1) in Block Sparse Row format>

它是否适合您的模拟取决于许多我们不知道的事情。您可能需要使用不同的sparse matrix class

【讨论】:

  • scipy.sparse 将元素索引存储为整数。对于较小的矩阵,它使用np.int32,但如果需要可以使用np.int64。所以这允许非常大的形状。但是非零元素的数量受内存限制。除非非常稀疏,否则计算会比密集数组慢。
猜你喜欢
  • 2017-07-20
  • 2021-11-25
  • 1970-01-01
  • 2014-07-14
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 1970-01-01
  • 2018-01-19
相关资源
最近更新 更多