2013-07-31 18 views
8

Yaptığım verileri (farklı şekillerde ndarraylarla dolu listeler ve sözlükler) kaydetmek için scipy.io kullanıyorum. V7.3 mat dosyası bir gün eski v7 mat formatını değiştireceğinden, veriyi saklamak için HDF5'e geçmeyi düşünüyorum, özellikle python için h5py. Ancak, ben kolay olduğu kadar benim sözlükleri kaydedemezsiniz fark:H5py, python sözlüklerini otomatik olarak hdf5 gruplarına dönüştürebilir mi?

import scipy.io as sio 
data = {'data': 'Complicated structure data'} 
sio.savemat('fileName.mat', data) 

Bunun yerine, piton sözlükte yapıyı çoğaltılmış birer birer h5py.create_group kullanmak zorunda. Çok büyük yapılar için bu mümkün değildir. Python sözlüklerini otomatik olarak hdf5 gruplarına dönüştürmenin kolay bir yolu var mı?

Teşekkür ederiz!

-Shawn

+0

olası yinelenen [SciPy hiyerarşik veri depolamak nasıl?] (Http://stackoverflow.com/questions/17977373/how-to-store-hierarchical-data-in-scipy) – Yossarian

cevap

8

Ben bu tür şeyleri hep yapıyor gerekiyordu ve o turşu hdf5 versiyonunu yapmak düzgün olacağına karar verdik: Numpy ait https://github.com/telegraphic/hickle

motivasyon depolayarak edildi piton sözlükleri

import hickle as hkl 
import numpy as np 
data = { 
     'dataset1' : np.zeros((100,100)), 
     'dataset2' : np.random.random((100,100)) 
     } 
hkl.dump(data, 'output_filename.hkl') 

sen (hickle yüklemek pip) PyPi aracılığıyla yükleyebilir veya github onu indirmek mümkün olmalıdır: ne sonra gibi geliyor diziler.

Alkış Danny

ait
İlgili konular