对h5py的n维Blosc2切片进行透明优化读取
项目描述
b2h5py 为 h5py 提供了对 Blosc2 压缩数据集的n维切片进行透明、自动优化读取的功能。这种优化的切片利用了直接块访问(跳过缓慢的HDF5过滤器管道),并将块分成两级的分区,然后是更小的块(这样实际上解压缩的数据更少)。
这项技术的基准测试表明,与基于常规滤波器访问相比,速度提高了2倍至5倍。使用PyTables中类似的技术也获得了类似的结果,请参阅使用Blosc2 NDim在PyTables中优化超切片。
用法
这种优化的访问适用于使用原生字节顺序在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的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e073fa58095222e2e0cadfabb1f98e1705c2eeef2551c9851a8508fd4ce93cc6 |
|
MD5 | 7c17c9b39ee831cf608c5f46b8085721 |
|
BLAKE2b-256 | 2a9594c98eedb851229e1f58f98dcbceb6028a4d0f8a2eca698dd013ae97dcb5 |
b2h5py-0.4.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 85d1cc955fc46cf269fafa0d6f62188474cb162d25439a0f0868d6ff800b3aba |
|
MD5 | c7ce56b51419515b691fae2deaa776f0 |
|
BLAKE2b-256 | 526ac9f21cb2ef471985f783209f5594f7aa458c129e2519fe174cc6a11829ee |