我一直在使用scipy.io来保存我的结构化数据(填充了不同形状的ndarray的列表和词典)。由于v7.3 mat文件有一天会取代旧的v7 mat格式,我正在考虑切换到HDF5来存储我的数据,更具体地来说是h5py for python。但是,我注意到我无法保存我的词典:
import scipy.io as sio
data = {'data': 'Complicated structure data'}
sio.savemat('fileName.mat', data)
相反,我必须逐个使用h5py.create_group来复制python字典中的结构。对于非常大的结构,这是不可行的。有没有一种简单的方法可以自动将python词典转换为hdf5组?
谢谢!
-Shawn
答案 0 :(得分:9)
我需要一直做这种事情,并决定制作一个hdf5版本的泡菜是很好的: https://github.com/telegraphic/hickle
动机是存储numpy数组的python词典,这听起来像你所追求的:
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')
你应该能够通过PyPi(pip install hickle)安装它,或者从github下载它。
干杯 丹尼