Pythonで疎行列を保存する方法
Python のライブラリである SciPy には、疎行列を扱うためのパッケージ scipy.sparse が入っていますが、これに pickle とかが対応してないっぽいです。なのでこれをファイルとして保存する/読み出す方法を書いときます。
scipy.io にある mmwrite, mmread 関数を使えば保存/読み出しができるようです。
Input and output (scipy.io) — SciPy v0.13.0 Reference Guide
使い方
関数の使い方はリファレンスを読めば分かるけど、一応、例を載せておきます。
# -*- coding: utf-8 -*- from scipy.io import mmwrite, mmread from scipy.sparse import csr_matrix def test(): ### 何か適当な疎行列 arr = [[0, 0, 2, 0 ,-1], [0, -5, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1.2, 0]] arr = csr_matrix(arr) ### 保存 mmwrite("./arr", arr) ### 読み出し new_arr = mmread("./arr.mtx").todense() print new_arr if __name__ == "__main__": test()
こんな感じです。
mmwrite で保存すると、勝手に .mtx という拡張子が付くのに注意しよう。