python - 如何以 pythonic 方式管理大量庞大的数组。

标签 python arrays database numpy

我是科学计算的 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/

相关文章:

python - 将嵌套列表转换为嵌套字典的递归函数

linux - Windows应用程序是否可以访问Linux中的数据库

mysql - 我应该设置什么 COLLATE 来使用所有可能的语言?

python - 如何获取所有 Python 标准库模块的列表?

python - Matplotlib pyplot 线条不是通过动画绘制的

python - 无法 create_all Flask-SQLAlchemy - 指定的键太长

python - 使用另一个数组搜索一个数组

php - 将 PHP 数组排序为列

java - 将数据存储为具有空/空值的 HashMap 中的键是一个好主意吗?

php - 将信息数组传递到数据库中