根据 h5py 文档,“压缩过滤器可以由底层 HDF5 库动态加载。这是通过将过滤器编号作为压缩参数传递给 Group.create_dataset() 来完成的。”我有以下代码(工作正常):
import numpy as np
a = np.random.random(1e5)
with h5py.File(args.baseName + '/allubf.h5', libver='latest') as f:
dset = f.create_dataset('myData', (1000,), dtype=np.dtype(float), chunks=(1000,), compression='lzf', shuffle=True)
我查找了压缩过滤器 ID here并尝试将“lzf”替换为 32000,根据上面的链接,这应该是 lzf 的 ID。当我这样做时,我收到错误 ValueError:压缩过滤器“32000”不可用。我找不到更多的文档或示例。我是否需要以某种方式预加载过滤器才能使其可用?
最佳答案
看来文档早于发布的库。 此功能可在 GitHub repository 上使用。但在 pypi 版本中尚不可用(如果您使用 easy_install 或 pip 安装 h5py,则可以使用此版本)。如果您想使用自定义压缩过滤器,您必须使用 GitHub 中的版本,等待 pypi 版本更新,或者应用 this set of changes .
关于python - 如何在h5py中指定自定义压缩过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26049670/