我是Python新手。我试图保存我的结果,但失败了。有人能帮我修改代码吗?在
parameter = k ##(k is an number)
L = [(1,matrix1), (2,matrix2), (2,matrix2),...]
首先我编了一本词典来记录我的结果
^{pr2}$我使用以下代码保存和读取:
import pickle
output = open('result.pkl', 'wb')
pickle.dump(My_dict, output, -1)
output.close()
(我在这里查字典,到现在为止一切都是正确的)
但当我试图读取数据时:
pkl_file = open('result.pkl', 'rb')
res = pickle.load(pkl_file)
pprint.pprint(res)
我发现我的L是空的,如下所示:
'parameter': k,
'L': []
我的代码哪里出错了?谁能帮忙吗?在
我想问题是我的矩阵是numpy数组。看来我不应该用pickle来保存numpy数组。在
我不知道您为什么在pickle
numpy
数组或矩阵对象时遇到问题。他们应该泡菜。这里我用dill
来腌制它们。在首选的方法是使用
^{pr2}$dump
方法,该方法与numpy
对象一起提供。从上面的pickle可以看出,这实际上就是dill
在做什么,但只是在开头添加了一些小东西(基本上,它还序列化了函数来取消数组的拾取)。在因此,如果
pickle
本身不能直接作用于numpy
对象,那么可以使用dill
,或者可以对numpy
对象本身使用dump
/dumps
方法。在相关问题 更多 >
编程相关推荐