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

Working with array and Dictionaries after loading them from Disk using np.load and np.save

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

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

问题是,当我之后尝试使用它们时,出现类似(未找到字段名称)或(len() of unsized object)的错误。 例如:

 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数组,不适用于一般Python 数据如 dicts。使用 pickle 模块保存到文件,并从文件重新加载,大多数类型的 Python 数据结构(有替代方案,如 dill 但不在标准库中 - 我' d 建议坚持使用标准 pickle 除非它给你带来特定问题)。