npz文件的替代品?

2024-10-02 08:27:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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

  • 二维阵列(N=11,Ns=2000)
  • 二维阵列(12,N)
  • 二维阵列(300,N)
  • 二维阵列(300,Ns)
  • 浮子
  • 整数

有超过1000个文件是很烦人的,每个文件最终都要占用4Mb。我在想把它们转移到一个容器,比如HDF5/Pytables或类似的容器。不同的数组只是数组,没有优先次序或任何东西(它们实际上是矩阵或向量的堆栈,将被操作)。每个文件名的所有数组都需要同时在一起。在

对于检索与var1var2var3相关联的数组的格式,有什么建议吗


Tags: 文件格式整数数组结构容器file浮点
1条回答
网友
1楼 · 发布于 2024-10-02 08:27:15

在这里,用PyTables以HDF5格式存储数据集肯定是有意义的(例如请参见thisexample)。在

它不仅可以将所有数据放在同一个容器中,而且还可以通过BLOSC获得压缩、高效查询和更快的读/写访问。在

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

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

相关问题 更多 >

    热门问题