序列化 numpy 数组的元组
我有几个numpy矩阵(准确来说是三维的),它们被存储在元组里。
(a1,b1,c1)
(a2,b2,c2)
...
(an,bn,cn)
我想把每个元组保存到一个文件里,这样在另一台机器上(从Linux转到Windows,两者都是x86-64架构)就可以再读回来。用Python有什么好的方法可以做到这一点呢?
4 个回答
1
我一般使用 cPickle
这个工具,虽然我还没有和其他方法做过正式的比较。此外,我总是以二进制格式写文件,并且使用最高的协议设置:
f = open('fname.pkl','wb')
cPickle.dump(array_tuple,f,-1)
f.close()
1
Pickle 可能会很好用
我还看到这个:http://thsant.blogspot.com/2007/11/saving-numpy-arrays-which-is-fastest.html
6
使用 numpy.savez 或者 numpy.savez_compressed 是最好的选择。我听说过有些类型的数组在保存时可能会出现问题,但我自己没有遇到过。
我记得有一个 帖子(似乎并没有太大问题),还有关于 numpy.void 无法保存 的讨论。可能这不是个大问题,但还是提一下。