Python 保存numpy数组,使其在不加载的情况下随时可用

Python 保存numpy数组,使其在不加载的情况下随时可用,python,database,numpy,save,Python,Database,Numpy,Save,我有一个20GB的图像库,存储为高维numpy阵列。这个库允许我使用这些图像,而不必每次都重新生成它们。现在我的问题是np.load(“mylibrary”)所花费的时间与生成两个这样的图像所花费的时间一样多。因此,我的问题是:是否有一种存储numpy数组的方法,这样就可以在不加载的情况下轻松访问它 编辑:我正在使用PyCharm我建议使用哪种Pythonic接口来连接HDF5二进制数据格式 它允许您存储大量的数字数据,并可以轻松地从NumPy操作这些数据。例如,您可以将存储在磁盘上的多TB数据

我有一个20GB的图像库,存储为高维numpy阵列。这个库允许我使用这些图像,而不必每次都重新生成它们。现在我的问题是np.load(“mylibrary”)所花费的时间与生成两个这样的图像所花费的时间一样多。因此,我的问题是:是否有一种存储numpy数组的方法,这样就可以在不加载的情况下轻松访问它

编辑:我正在使用PyCharm

我建议使用哪种Pythonic接口来连接HDF5二进制数据格式

它允许您存储大量的数字数据,并可以轻松地从NumPy操作这些数据。例如,您可以将存储在磁盘上的多TB数据集进行切片,就像它们是真正的NumPy阵列一样。数千个数据集可以存储在一个文件中,可以根据需要进行分类和标记

您也可以使用。它是python和numpy的另一个HDF5接口

PyTables是一个用于管理分层数据集的包,旨在高效、轻松地处理海量数据。您可以下载PyTables并免费使用它。您可以在此处访问文档、一些使用示例和演示文稿


numpy.memap是另一个选项。但是,它将比hdf5慢。另一个条件是阵列应限制为2.5G

根据您尝试执行的操作,您可能会降低图像质量或在经过有损图像压缩后存储图像?否则,从我看到的情况来看,硬盘上的IO将是读取阵列序列化版本的限制因素。您是否同时需要内存中的所有图像?将序列化的单个图像作为blob存储在数据库中可能会很有效?第一个问题:您有多少可用RAM?因为如果它不是很重要,那么您将不得不在某个时候进行磁盘I/O,这几乎会扼杀您所追求的任何速度。谢谢您的回复。我使用的是带有4 GB RAM 1600 MHz DDR3的MacBook Air。打开PyCharm后,我可以加载一次。我的问题是理解如何在函数中重复使用它(如有必要,在加载后)。您可以使用
savez
单独或成组地保存图像,而不是将所有图像保存为一个数组。这是一个懒惰的负载。另请查看
load
的memmap模式。