2
SciPyスパース行列mat
が占有するメモリを監視したいとします。 NumPyでは、私はnbytes
属性を悪用していましたが、SciPyではそれはそうではないようです。 この情報はどのように取得できますか?SciPyスパース行列によって消費されたバイト数を取得する
SciPyスパース行列mat
が占有するメモリを監視したいとします。 NumPyでは、私はnbytes
属性を悪用していましたが、SciPyではそれはそうではないようです。 この情報はどのように取得できますか?SciPyスパース行列によって消費されたバイト数を取得する
私は疎行列X
In [605]: X
Out[605]:
<100x100 sparse matrix of type '<class 'numpy.float64'>'
with 1000 stored elements in Compressed Sparse Row format>
getsizeof
がまばらなデータとインデックスは、csr
行列のために3つの配列に格納されている私に
In [606]: import sys
In [607]: sys.getsizeof(X)
Out[607]: 28
便利なものを教えてくれない持っている:
In [612]: X.data.nbytes
Out[612]: 8000
In [613]: X.indices.nbytes
Out[613]: 4000
In [614]: X.indptr.nbytes
Out[614]: 404
したがって、おおよその合計容量はこれらの値の合計我々は、形状、DTYPEとNNZからそれらの値を計算することができるcoo
フォーマット
In [615]: Xc=X.tocoo()
In [616]: Xc.data.nbytes
Out[616]: 8000
In [617]: Xc.row.nbytes
Out[617]: 4000
In [618]: Xc.col.nbytes
Out[618]: 4000
について
。例えば
その他のフォーマットでは、データ保存方法(例えば、lil
,dok
など)の知識が必要です。
非常にすっきりした答えです!あなたのスパース行列に対して 'X.data .__ sizeof __()'は返されますか? – MaxU
'48' - numpy配列の一般的なヘッダーサイズ(形状、ストライド、フラグなどのスペース) – hpaulj