我正在使用Scipy堆栈进行数据分析,并且通常具有复杂层次结构的数据,例如将元素作为列表的字典,以及这些列表中的多个字典......
因此我需要将这些数据存储在一个文件中。我一直在使用scipy.io.savemat,但我读到HDF5更适合并且更少特定于平台(savemat适用于Matlab)。缺点是使用h5py而不是直接在工作空间中保存变量,我必须手动复制复杂的结构(即对于每个字典,我需要相应地手动创建组)。
有没有一种标准的方法可以做到这一点,比如我们如何在Matlab中保存“.mat”文件?
谢谢!
-Shawn
答案 0 :(得分:1)
如果您只需要从python中读取数据并且不需要更改数据的某些部分,那么使用pickle协议保存您的内容要容易得多。 E.g
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'))
答案 1 :(得分:0)
joblib是另一个允许您转储任意Python对象的工具,具有NumPy阵列专用存储的附加优势。