2016-03-26 21 views
0

Matlab arka planından geliyorum ve yakın zamanda Python'da kodlamaya başladım. Monte Carlo kullanarak büyük veri üretiyorum ve bunlar bazen 10 boyutlu diziler. Matlab'da, bu dizileri depolamak için .mat dosya formatını kullanarak yapıları kullanarak girdiler ve diğer parametreler kullanılır.Python büyük simülasyonu kaydetme

Python için önerilen depolama ya da eşdeğer nedir?

+1

bir MATLAB biri söylüyor, hala kaydedebilir/yük MAT- Scipy kullanarak Python dosyaları: http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.savemat.html :) – Amro

cevap

2

Python'daki standart nesne serileştirmesi pickle'dur. Dokümanlar

“Asitleme” bir Python nesne hiyerarşi bir bayt akımına dönüştürülür ve “unpickling” ters işlemdir ve böylece bir işlemdir, böylece ikili bir dosya ya da bir bit akımı (bytes- nesnesi gibi bir nesne hiyerarşisine geri dönüştürülür.

örnek bir alternatif HDF5 biçimine veri yazmak için bir üçüncü taraf modülüdür h5py gibi bir şey kullanmak olacaktır

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

olurdu. Uygulamanıza bağlı olarak, HDF5 akılda büyük sayısal veri setleri ile tasarlandığından, bu daha performanslı bir çözüm olabilir. Aslında, en son .mat dosyaları, hdf5 dosyalarının üstünde, source üzerinde tasarlanmıştır.

1

sen (piton 2.x) için turşu kütüphane ya cplicke ile piton serileştirme nesneleri kullanabilirsiniz

https://docs.python.org/2/library/pickle.html örnek: dosya olarak kaydetmek istiyorsanız

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

sonra yapabilirsiniz kullanmak Kullanılabilir en yüksek protokolü kullanarak listeyi seçin. = -1 - # değilse = 0

Bkz: 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.