在使用np.load和np.save从磁盘加载数组和Dictionaries后使用它们



我有几个巨大的数组,我使用np.save和np.load将每个数组或字典保存在一个文件中,然后重新加载它们,以免下次按如下方式计算它们。

save(join(dir, "ListTitles.npy"), self.ListTitles)
self.ListTitles = load(join(dir,"ListTitles.npy"))

问题是,当我以后尝试使用它们时,我会出现错误,比如(找不到字段名)或(未大小对象的len())。例如:

 len(self.ListTitles) or when accessing a field of a dictionary return an error.

我不知道如何解决这个问题。因为当我简单地使用这个代码时,它可以完美地工作:

M = array([[1,2,0], [3,4,0], [3,0,1]])
vector = zeros(3529)
save("M.npy", M)
save("vector.npy", vector)
vector = load("vector.npy")
B = load("M.npy")
print len(B)
print len(vector)

numpysaveload函数是用于numpy数组的,而不是用于像dict s这样的通用Python数据。使用pickle模块保存到文件,然后从文件重新加载,大多数类型的Python数据结构(有dill这样的替代方案,但它们不在标准库中——我建议您坚持使用标准pickle,除非它会给您带来特定的问题)。

最新更新