跳转到主要内容

对h5py的n维Blosc2切片进行透明优化读取

项目描述

b2h5pyh5py 提供了对 Blosc2 压缩数据集的n维切片进行透明、自动优化读取的功能。这种优化的切片利用了直接块访问(跳过缓慢的HDF5过滤器管道),并将块分成两级的分区,然后是更小的块(这样实际上解压缩的数据更少)。

这项技术的基准测试表明,与基于常规滤波器访问相比,速度提高了2倍至5倍。使用PyTables中类似的技术也获得了类似的结果,请参阅使用Blosc2 NDim在PyTables中优化超切片

doc/benchmark.png

用法

这种优化的访问适用于使用原生字节顺序在Blosc2压缩数据集上步长为1的切片。通过修补类来扩展切片操作,可以启用它。这样做最简单的方法是

import b2h5py.auto

之后,将尝试对数据集的任何切片(形式为dataset[...]或dataset.__getitem__(...))进行优化。如果特定情况下无法进行优化,将使用正常的h5py切片代码(该代码执行基于HDF5滤波器的访问,由hdf5plugin支持Blosc2)。

您也可以直接导入b2h5py,并通过调用b2h5py.enable_fast_slicing()显式全局启用优化,并使用b2h5py.disable_fast_slicing()再次禁用它。您还可以使用上下文管理器临时启用它

with b2h5py.fast_slicing():
    # ... code that will use Blosc2 optimized slicing ...

最后,您可以通过包装在B2Dataset实例中显式地为特定的h5py数据集启用优化

b2dset = b2h5py.B2Dataset(dset)
# ... slicing ``b2dset`` will use Blosc2 optimization ...

构建

只需安装PyPA构建工具(例如pip install build),进入源代码目录,然后运行pyproject-build以获取位于dist目录下的源tarball和wheel。

安装

要从PyPI安装wheel,请运行pip install b2h5py。

您还可以安装上一节中构建的wheel,或者进入源代码目录并从那里运行pip install .。

运行测试

如果您已安装b2h5py,只需运行python -m unittest discover b2h5py.tests。

否则,只需进入其源代码目录并运行python -m unittest。

您还可以使用修补后的Dataset类运行h5py测试,以检查修补是否破坏了任何内容。您可以安装h5py-test附加组件(例如pip install b2h5py[h5py-test]并运行python -m b2h5py.tests.test_patched_h5py)。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

b2h5py-0.4.1.tar.gz (14.7 kB 查看哈希)

构建分布

b2h5py-0.4.1-py3-none-any.whl (15.8 kB 查看哈希)

Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面