我是科学计算的python用户。现在,我有一些numpy数组,每个数组的大小都很大。因此,我不能同时在内存中缩短所有这些内容。我想将数组保存在磁盘中,每次一个一个地读取它们进行一些计算。如何以pythonic方式执行此过程?
我知道如果所有数据都存储在内存中,我可以创建一个名为array_list的列表,如下所示:
array_list = []
for i0 in range(n_array):
t_ayyay = do_some_calculate()
array_list.append(t_ayyay)
当我想使用它们时:
for i0 in range(n_array):
t_ayyay = array_list[i0]
# do something.
如何在磁盘中保存array_list,我可以使用索引读取每个对象而不加载内存中的所有对象?
感谢。
答案 0 :(得分:2)
Pickle是你的序列化朋友。
import pickle
some_list = [....]
pickle_out = open("some_list.pickle", "w")
pickle.dump(some_list, pickle_out)
pickle_out.close()
打开已保存的数组
pickle_in = open("some_list.pickle", "r")
some_list = pickle.open(pickle_in)