[解決済み] scipy sparse csr_matrix のポータブルデータ形式での保存/ロード
質問
scipy sparseの保存/読み込みはどのように行うのですか?
csr_matrix
をポータブルなフォーマットで保存できますか? scipyのスパース行列は、Python 2 (Linux 64-bit)で実行するためにPython 3 (Windows 64-bit)で作成されています。 最初は pickle (protocol=2, fix_imports=True) を使いましたが、Python 3.2.2 (Windows 64-bit) から Python 2.7.2 (Windows 32-bit) に行くとうまくいかず、エラーになりました。
TypeError: ('data type not understood', <built-in function _reconstruct>, (<type 'numpy.ndarray'>, (0,), '[98]')).
次に
numpy.save
と
numpy.load
と同様に
scipy.io.mmwrite()
と
scipy.io.mmread()
といった方法で、いずれもうまくいきませんでした。
どのように解決するのですか?
を編集してください。
scipy 0.19では
scipy.sparse.save_npz
と
scipy.sparse.load_npz
.
from scipy import sparse
sparse.save_npz("yourmatrix.npz", your_matrix)
your_matrix_back = sparse.load_npz("yourmatrix.npz")
どちらの関数も
file
の引数は、ファイルのようなオブジェクトであることもあります。
open
の結果) を指定することもできます。
Scipyユーザーグループから回答がありました。
csr_matrixは3つのデータ属性を持っています。
.data
,.indices
そして.indptr
. すべて単純な ndarray です.numpy.save
はそれらに対して動作します。3つの配列の保存にはnumpy.save
またはnumpy.savez
で読み込み、それをnumpy.load
で、疎行列オブジェクトを再作成します。
new_csr = csr_matrix((data, indices, indptr), shape=(M, N))
だから例えば
def save_sparse_csr(filename, array):
np.savez(filename, data=array.data, indices=array.indices,
indptr=array.indptr, shape=array.shape)
def load_sparse_csr(filename):
loader = np.load(filename)
return csr_matrix((loader['data'], loader['indices'], loader['indptr']),
shape=loader['shape'])
関連
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] numpy.matrixやarrayをscipy sparse matrixに変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?