2013-07-31 8 views
8

Ich habe scipy.io verwendet, um meine strukturierten Daten zu speichern (Listen und Wörterbücher, die mit ND-Arrays in verschiedenen Formen gefüllt sind). Da v7.3 mat file eines Tages das alte v7 mat Format ersetzen wird, denke ich darüber nach, zu HDF5 zu wechseln, um meine Daten zu speichern, genauer gesagt h5py für python. Allerdings bemerkte ich, dass ich nicht meine Wörterbücher so einfach wie speichern:Kann h5py Python-Wörterbücher automatisch in hdf5-Gruppen konvertieren?

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

Stattdessen habe ich eine verwenden h5py.create_group durch eine die Struktur in Python-Wörterbuch repliziert. Bei sehr großen Strukturen ist dies nicht durchführbar. Gibt es eine einfache Möglichkeit, Python-Wörterbücher automatisch in hdf5-Gruppen umzuwandeln?

Vielen Dank!

-Shawn

+0

möglich Duplikat von [Wie hierarchische Daten in scipy speichern?] (Http://stackoverflow.com/questions/17977373/how-to-store-hierarchical-data-in-scipy) – Yossarian

Antwort

8

Ich brauchte diese Art der Sache die ganze Zeit zu tun, und beschlossen, es ordentlich sein würde, eine hdf5 Version von Beize zu machen: https://github.com/telegraphic/hickle

Die Motivation wurde Speicherung Python Wörterbücher von numpy Arrays, die klingt wie, was Sie nach:

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

Sie sollten in der Lage es über PyPI zu installieren (installieren Hickle piP) oder diese von github herunterladen.

Prost Danny

Verwandte Themen