保存许多不同长度的数组

per*_*iae 6 python numpy

我有~8000个二维点数组,存储在内存中作为numpy数组的Python列表.每个阵列都有形状(x,2),其中x数字介于~600和~4000之间.基本上,我有一个锯齿状的3-d阵列.

我想以方便/快速的格式存储这些数据,以便从磁盘读取/写入.我宁愿不创建~8000个单独的文件,但(8000,4000,2)如果我可以避免它,我也不愿用零填充整个矩阵.

我应该如何将我的数据存储在磁盘上,以便最小化文件大小和解析/序列化?

ede*_*ora 6

有一个称为 HDF 的标准,用于存储大量数据集。您可以在以下链接中找到一些信息,但总的来说,HDF 定义了一种可用于大型信息存储的二进制文件格式。

您可以在此处找到一个在磁盘上存储大型 Numpy 数组的示例。在那篇文章中,作者对 Python Pickle 和 HDF5 进行了比较。

我还向您推荐HDF5 简介。这是h5py 包,它是 HDF5 二进制数据格式的 Pythonic 接口。