将 Numpy 存储为 pickled Pandas、Pickled Numpy 或 HDF5

Store Numpy as pickled Pandas, Pickled Numpy or HDF5

我现在正在处理来自项目信息预处理的 300 个浮动特征。此类项目由 UUID(即字符串)标识。当前文件大小约为 200MB。到目前为止,我已将它们存储为 Pickled numpy 数组。有时我需要将项目的 UUID 映射到 Numpy 行。为此,我使用字典(存储为 json)将 UUID 映射到 numpy 数组中的行。

我很想使用 Pandas 并将该字典替换为 Pandas 索引。我还发现了 HF5 文件格式,但我想知道更多关于何时使用它们的信息。

我使用数组的一部分来提供基于 scikit-Learn 的算法,然后对其余部分进行分类。

存储腌制的 numpy 数组确实不是最佳方法。相反,您可以使用,

  • numpy.savez 以二进制格式保存一个numpy数组的字典
  • 在 HDF5 中存储 pandas DataFrame
  • 直接使用 PyTables 将您的 numpy 数组写入 HDF5。

HDF5 是存储科学数据的首选格式,其中包括

  • 并行 read/write 能力
  • 动态压缩算法
  • 高效查询
  • 能够处理不适合 RAM 的大型数据集。

不过,选择输出文件格式来存储 200MB 的小数据集并不是那么关键,更多的是为了方便。