序列化 numpy 数组的元组

4 投票
4 回答
5609 浏览
提问于 2025-04-16 12:47

我有几个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
6

使用 numpy.savez 或者 numpy.savez_compressed 是最好的选择。我听说过有些类型的数组在保存时可能会出现问题,但我自己没有遇到过。

我记得有一个 帖子(似乎并没有太大问题),还有关于 numpy.void 无法保存 的讨论。可能这不是个大问题,但还是提一下。

撰写回答