2013-07-31 4 views
8

Używam scipy.io do zapisywania danych strukturalnych (list i słowniki wypełnione ndarrays w różnych kształtach). Ponieważ plik maty v7.3 zamierza pewnego dnia zastąpić stary format maty v7, myślę o przejściu na HDF5 do przechowywania moich danych, dokładniej h5py dla Pythona. Jednak zauważyłem, że nie mogę zapisać moje słowniki tak proste, jak:Czy h5py jest w stanie automatycznie przekonwertować słowniki języka Python na grupy hdf5?

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

Zamiast tego muszę używać h5py.create_group jeden po drugim, aby replikowane strukturę w słowniku Pythona. W przypadku bardzo dużych struktur jest to niewykonalne. Czy istnieje prosty sposób automatycznego przekształcania słowników Pythona w grupy hdf5?

Dziękujemy!

-Shawn

+0

możliwe duplikat [Jak przechowywać hierarchicznych danych w scipy?] (Http://stackoverflow.com/questions/17977373/how-to-store-hierarchical-data-in-scipy) – Yossarian

Odpowiedz

8

musiałem robić tego typu rzeczy przez cały czas, i zdecydował, że będzie schludny zrobić wersję hdf5 zalewy: https://github.com/telegraphic/hickle

Motywacją była przechowywania słowniki Python z numpy macierze, co brzmi jak ty jesteś po:

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') 

Powinieneś być w stanie zainstalować go poprzez PyPI (pIP zainstalować hickle) lub pobrać go z github.

Cheers Danny

Powiązane problemy