2017-09-13 239 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