8

我一直在使用 scipy.io 来保存我的结构化数据(用不同形状的 ndarray 填充的列表和字典)。由于 v7.3 mat 文件有一天会取代旧的 v7 mat 格式,我正在考虑切换到 HDF5 来存储我的数据,更具体地说是用于 python 的 h5py。但是,我注意到我不能像这样简单地保存我的字典:

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

相反,我必须一一使用 h5py.create_group 来复制 python 字典中的结构。对于非常大的结构,这是不可行的。有没有一种简单的方法可以自动将 python 字典转换为 hdf5 组?

谢谢!

-肖恩

4

1 回答 1

12

我需要一直做这种事情,并决定制作一个 hdf5 版本的 pickle 会很整洁: 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 下载它。

干杯丹尼

于 2014-09-30T17:38:29.680 回答