我是科学计算的 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 保存在磁盘中,并且我可以使用索引读取每个对象而不用将它们全部加载到内存中?
谢谢。
最佳答案
Pickle 是您序列化的好 helper 。
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)
关于python - 如何以 pythonic 方式管理大量庞大的数组。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43992004/