2013-07-31 10 views
8

Ho usato scipy.io per salvare i miei dati strutturati (elenchi e dizionari pieni di ndarrays in diverse forme). Dal momento che il file v7.3 mat sostituirà il vecchio formato v7 mat qualche giorno, sto pensando di passare a HDF5 per archiviare i miei dati, in particolare h5py per python. Tuttavia, ho notato che non posso salvare i miei dizionari facile come:h5py è in grado di convertire automaticamente i dizionari Python in gruppi hdf5?

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

Invece, devo usare h5py.create_group uno ad uno per replicato la struttura in dizionario Python. Per strutture molto grandi, questo è irrealizzabile. C'è un modo semplice per convertire automaticamente i dizionari Python in gruppi hdf5?

Grazie!

-Shawn

+0

possibile duplicato di [Come conservare i dati gerarchici in SciPy?] (Http://stackoverflow.com/questions/17977373/how-to-store-hierarchical-data-in-scipy) – Yossarian

risposta

8

avevo bisogno di fare questo genere di cose tutto il tempo, e ha deciso che sarebbe stato ordinato di fare una versione HDF5 di salamoia: https://github.com/telegraphic/hickle

La motivazione è stata la memorizzazione dizionari Python numpy array, che suona come quello che stai dopo:

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

si dovrebbe essere in grado di installarlo tramite Cheese Shop (PIP installare Hickle), o scaricarlo dal github.

Acclamazioni Danny