2017-09-13 236 views
0

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

我想模拟NxN=10^7。我第一次尝试Matlab,但不幸的是,Matlab无法处理NxN>10^4

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

+0

Numpy和Matlab的工作原理非常类似于C程序。如果Matlab不能处理它,我会严重怀疑numpy可以。请查看使用大数据工具的替代方案。 PySpark是一个很好的开始。 –

+0

N * N = 10^14 .........您可能需要不同的表示;稀疏矩阵中有多少人? –

+0

按照此链接https://stackoverflow.com/questions/14525344/whats-the-maximum-size-of-a-numpy-array – amrit

回答

1

SciPy的可处理的N×N的稀疏矩阵具有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

+0

'scipy.sparse'将元素索引存储为整数。对于较小的矩阵,它使用'np.int32',但如果需要可以使用'np.int64'。所以这允许非常大的形状。但非零元素的数量受内存限制。除非非常稀疏,与密集阵列相比,计算速度会变慢。 – hpaulj