python - 如何在h5py中指定自定义压缩过滤器

标签 python hdf5 h5py

根据 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/

相关文章:

python - numpy.random.randint() 是否总是返回连续且对齐的 ndarray?

visual-studio-2010 - 静态链接,Visual Studio和FLANN

python - 在 Ubuntu 服务器上安装 h5py

python - 从 HDF5 迁移到 PostgreSQL

Python:在求大数组的乘积时,如何最好地减少浮点错误?

python - 更改列表中的多个项目

python - 在给定各种条件的情况下,如何更改 pandas 数据框中日期的年份?

python - 使用正则表达式检查数据集是否存在,无需先读取所有数据集的路径

python - 使用 h5py 删除 hdf5 数据集

python - 使用 AWS S3 s3fs/boto3 读取 h5 文件