2

我正在使用 Scipy 堆栈进行数据分析,并且经常有具有复杂层次结构的数据,例如带有元素作为列表的字典,并且这些列表中还有多个字典......

因此我需要将这些数据存储在一个文件中。我一直在使用 scipy.io.savemat,但我读到 HDF5 更合适且平台特定性更低(savemat 用于 Matlab)。缺点是使用 h5py,我必须手动复制复杂的结构,而不是直接在工作区中保存变量(即,对于每个字典,我需要相应地手动 create_group)。

是否有标准的方法来做到这一点,比如我们如何在 Matlab 中保存“.mat”文件?

谢谢!

-肖恩

4

2 回答 2

1

如果您只需要从 python 读取数据并且不需要更改数据的某些位,那么使用 pickle 协议保存您的东西要容易得多。例如

import cPickle
f=open('something.pickle','w+')
cPickle.dump(whatever_object_youd_like_to_save,f,protocol=2)

然后你可以使用加载它

your_object = cPickle.load(open('something.pickle'))
于 2013-07-31T19:30:04.053 回答
0

joblib是另一个可以让你转储任意 Python 对象的工具,它还具有为 NumPy 数组提供专用存储的额外优势。

于 2013-07-31T19:58:07.337 回答