我有一个Numpy数组,我想用Pickle保存(130000 x 3),代码如下。但是,在pkl.load行中,我一直得到错误“eoferor:run out of input”或“unsupportdoperation:read”。这是我第一次用泡菜,有什么想法吗?
谢谢
阿南特
import pickle as pkl
import numpy as np
arrayInput = np.zeros((1000,2)) #Trial input
save = True
load = True
filename = path + 'CNN_Input'
fileObject = open(fileName, 'wb')
if save:
pkl.dump(arrayInput, fileObject)
fileObject.close()
if load:
fileObject2 = open(fileName, 'wb')
modelInput = pkl.load(fileObject2)
fileObject2.close()
if arrayInput == modelInput:
Print(True)
已经有一点了,但是如果你发现了这个,Pickle会在很短的时间内完成。
另一方面,默认情况下,numpy compress将我的5.2GB降到了.4GB,Pickle降到了1.7GB。
我使用
pickle
没有问题:pickle
和np.save/load
有很深的互易性。就像我可以用np.load
加载这个pickle一样:如果我在错误的地方打开pickle文件,我会得到您的错误:
但这并不奇怪-你不能读取一个新打开的写文件。它将是空的。
np.save/load
是编写numpy数组的常用对。但是pickle使用save
序列化数组,而save
使用pickle序列化(数组中的)非数组对象。结果文件大小相似。奇怪的是,泡菜的时间更快。您应该使用numpy.save和numpy.load。
相关问题 更多 >
编程相关推荐