从1.8.8开始,HDF5提供了dense storage of attributes以便更快地处理具有许多或大型属性的HDF5节点。默认情况下,开始密集存储的限制(H5Pset_attr_phase_change)设置为8个属性。

有什么方法可以使用Python或直接通过PyTables将该值更改为0(即始终使用密集存储)吗?



编辑:如果不能通过PyTables进行更改,而必须在外部进行,则这些外部更改仍然会影响PyTables,这一点很重要。因此,应将通过PyTables添加的所有HDF5属性密集存储。

最佳答案

似乎尚未包装对相关属性的访问权:

https://groups.google.com/forum/#!topic/h5py/r3nHU7C-tvY

包裹新属性的过程在此处似乎已被详细记录:

http://docs.h5py.org/en/latest/contributing.html#how-to-modify-h5py

有一个实际的例子。它由4到5个(相对)简单的步骤组成...
如果您习惯于编译,则可能需要一个小时或更短的时间。

这有帮助吗?

编辑:从PyTables文档:“相反,PyTables在HDF5 [1]和NumPy [3]之上构建了一个附加的抽象层,在其中实现了诸如增强功能之类的功能……”我的印象是,它与hdf5库,因此,访问这些选项可能会更加困难。

由于PyTables不使用h5py,因此对h5py的任何更改都不会帮助您...

关于python - 如何在PyTables/Python中打开HDF5密集属性存储?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29103566/

10-10 14:03