gpt4 book ai didi

python - 优化 pytables/HDF5 的 chunkshape 参数以读取整列

转载 作者:行者123 更新时间:2023-11-30 23:40:39 26 4
gpt4 key购买 nike

我试图通过在创建表时指定 chunkshape 来提高 pytables/HDF5 代码的性能。我无法弄清楚 chunkshape 参数的实际尺寸或格式是什么。我可以从代码中看到它最终成为一个具有单个元素的元组。

这个单个元素应该是行数、字节数还是什么?

我的具体问题是我现有的代码可以创建包含 20 列的 HDF5 表。我想更改表的 block ,以便每列连续存储在磁盘上。因此,优化一次读取整个列。

我尝试将 chunkshape 设置为 20(列数),但这极大地降低了读取整个列的性能。 block 形状是否应该设置为单行的宽度(以字节为单位)?

我只是想知道 block 形状应该是什么,如果:

  1. 我想尽快阅读整篇专栏文章。
  2. 我确切地知道表中有多少列。
  3. 出于向后兼容性的原因,我不能简单地更改表格以将现有行作为列,反之亦然。

最佳答案

PyTables 中的 chunkshape 指定每行和每列应连续存储在磁盘上的元素数量(这就是它是元组的原因)。

因此,例如,如果您的数据集为 10,000 x 20(10,000 行,20 列),并且您始终一次访问一列,则考虑到最佳 block 大小,每个 block 应包含尽可能多的列(有关更多详细信息,请参阅here)。

如果您知道将有多少行并且它们不是那么大,您可以指定 (10.000,1) 的 block 形状(或更少的行)。因此,如果您访问所有 20 列,则需要 20 次访问。

关于python - 优化 pytables/HDF5 的 chunkshape 参数以读取整列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12484140/

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