2017-09-13 16 views
0

私はN個体の社会を通じて革新の普及を反映したモデルに取り組んでいます。私は隣接行列AのサイズがNxNであり、この隣接行列は疎であることに注意してください。スパース行列の最大サイズ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

N = 10^7

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

出力とscipyのダウンロードは、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

関連する問題