除非该信息已明确存储在文件中的某个位置。据,直到...为止np.memmap http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.memmap.html就而言,文件只是一个平面缓冲区。
我建议使用np.save http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.save.html持久化 numpy 数组,因为这也保留了指定其维度、数据类型等的元数据。您还可以加载.npy
通过传递文件作为内存映射memmap_mode=
参数为np.load http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.load.html.
joblib.dump https://pythonhosted.org/joblib/generated/joblib.dump.html使用 pickling 的组合来存储通用 Python 对象和np.save
存储 numpy 数组。
初始化由 a 支持的空内存映射数组.npy
您可以使用的文件numpy.lib.format.open_memmap
:
import numpy as np
from numpy.lib.format import open_memmap
# initialize an empty 10TB memory-mapped array
x = open_memmap('/tmp/bigarray.npy', mode='w+', dtype=np.ubyte, shape=(10**13,))
您可能会对此成功感到惊讶即使阵列大于总可用磁盘空间(我的笔记本电脑只有 500GB SSD,但我刚刚创建了一个 10TB memmap)。这是可能的,因为创建的文件是sparse https://stackoverflow.com/a/34029352/1461210.
发现的功劳open_memmap
应该去kiyo之前的回答在这里 https://stackoverflow.com/a/4620395/1461210.