2016-03-26 22 views
0

私はMatlabのバックグラウンドから来て、最近Pythonでコーディングを開始しました。私はMonte Carloを使用して大量のデータを生成します。これらは時には10次元配列です。 Matlabでは、これらの配列を格納する.matファイル形式と、構造体を使用する入力およびその他のパラメータを使用しています。大きなシミュレーションを保存するPython

Python用に推奨されるストレージまたは同等のものは何ですか?

+1

MATLABの男から来て、あなたはまだ保存することができます/負荷のマットSciPyを使用したPythonのファイル:http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.savemat.html :) – Amro

答えて

2

Pythonの標準オブジェクトのシリアル化はpickleです。ドキュメントから

「酸洗い」は、Pythonオブジェクト階層が バイトストリームに変換、および逆 操作、それによりバイト・バイナリ・ファイルからのストリーム(またはbytes-ある「unpickle化」されるプロセスであります オブジェクトのような)はオブジェクト階層に変換されます。

の例では、代替HDF5形式にデータを書き込むためのサードパーティのモジュールであるh5pyのようなものを使用することです

import pickle 
mydata = [1, 2, 3, 5] 
pickle.dump(mydata, open("mydata.p", "wb")) 
mydata2 = pickle.load(open("mydata.p", "rb")) 

だろう。 HDF5は大きな数値データセットを念頭に置いて設計されているため、用途に応じて、これはより効果的なソリューションになる可能性があります。実際、最新の.matファイルは実際にはhdf5ファイルの上に設計されています。source

1

あなたは(Pythonの2.xの)のためのピクルスライブラリまたはcplickeとpythonで直列化オブジェクトを使用することができ、

https://docs.python.org/2/library/pickle.html 例:あなたは、ファイルとして保存したい場合は

import pickle 
filetocreate = open('newfile.txt','w') 
pickle.dump(arrayxD, filetocreate, -1) 

、その後のことができます使用します

pickle.load(file) 

- #利用可能な最高のプロトコルを使用してリストを選択します。 = -1 - #そうでない場合は= 0

参照: pickle.HIGHEST_PROTOCOL

An integer, the highest protocol version available. This value can be passed as a protocol value to functions dump() and dumps() as well as the Pickler constructor. 

pickle.DEFAULT_PROTOCOL

An integer, the default protocol version used for pickling. May be less than HIGHEST_PROTOCOL. Currently the default protocol is 3, a new protocol designed for Python 3. 
関連する問題