gpt4 book ai didi

python - 替代 npz 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:37 27 4
gpt4 key购买 nike

我使用以 Python .npz 格式存储的数组。我有很多这样的文件,它们都共享相同的公共(public)结构:文件名 my_file_var1_var2_var3.npz 包含以下项目(所有数组都是 32 位 float ):

  • 一个二维数组(N=11,Ns=2000)
  • 一个二维数组 (12, N )
  • 一个二维数组 ( 300, N )
  • 一个二维数组 ( 300, Ns )
  • 一个花车
  • 一个整数

拥有超过 1000 个文件是非常烦人的,而且每个文件最终都会占用大约 4Mb。我在想将它们转移到一个容器中会很好,比如 HDF5/Pytables 或类似的。不同的数组只是数组,没有优先顺序或任何东西(它们实际上是矩阵或将对其进行操作的向量堆栈)。同时需要每个文件名的所有数组。

是否有任何建议可以更好地检索与 var1var2var3 关联的数组,即可移植和高效存储

最佳答案

使用 PyTables 以 HDF5 格式存储数据集在这里绝对有意义(例如,参见 example)。

它不仅会将您的所有数据放在同一个容器中,而且您还可以使用 BLOSC 进行压缩、高效查询以及可能更快的读/写访问。

因为您的项目具有可变形状,所以您不能将所有相同类型的项目放在一个公共(public)数组中。所以你有几个选择,

  1. 将每个数组保存为单独的 HDF5 节点
  2. 如果 N 是可变的但有一些合理的最大值 N_max(例如 20 或 30),您可以创建大小为 (number_of_items, . .., Nmax) 并默认用零填充不需要的元素。令人惊讶的是,如果您需要同时查询所有项目,这可能会更有效率,而且如果您使用压缩,您将不会看到大小开销。

关于python - 替代 npz 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965176/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com