Py之Python-Blosc:blosc的简介、安装和使用方法、案例应用之详细攻略

Py之Python-Blosc:blosc的简介、安装和使用方法、案例应用之详细攻略

目录

blosc的简介

blosc的安装和使用方法

1、安装

2、使用方法

(1)、构建

(2)、通过 setuptools 安装

(3)、编译已安装的 Blosc 库

(4)、测试

(5)、基准测试

blosc的案例应用


blosc的简介

blosc是一款极快的 Blosc 压缩库的 Python 包装器。Blosc 是一款针对二进制数据优化的高性能压缩器。它旨在通过 memcpy() OS 调用将数据传输到处理器缓存,速度比传统的非压缩直接内存提取方法更快。

Blosc 非常适合压缩包含熵相对较低的数据的数值数组,如稀疏数据、时间序列、具有规则间距值的网格等。

python-blosc 是一个包装 Blosc 的 Python 包。python-blosc 支持 Python 3.9 或更高版本。

官网地址:Blosc Main Blog Page
GitHub地址:GitHub – Blosc/python-blosc: A Python wrapper for the extremely fast Blosc compression library

blosc的安装和使用方法

1、安装

pip install blosc

pip install -i https://mirrors.aliyun.com/pypi/simple blosc

2、使用方法

(1)、构建

如果您需要更多控制,可以根据是否希望链接已安装的 Blosc 库使用不同的方法来编译 python-blosc。

(2)、通过 setuptools 安装

python-blosc 随附 Blosc 源代码,可以通过以下命令构建:

$ python -m pip install -r requirements-dev.txt

$ python setup.py build_ext --inplace

在此构建路径上,您可以通过适当的操作系统环境变量 `INCLUDE_LZ4`、`INCLUDE_SNAPPY`、`INCLUDE_ZLIB` 和 `INCLUDE_ZSTD` 启用 (=1) 或禁用 (=0) 任何编解码器。默认情况下,除 Snappy 外,Blosc 中的所有编解码器都是启用的(由于与 gcc 工具链的 C++ 相关的一些问题,该编解码器未被编译)。

通过检查 CPU 标志,构建 Blosc 时会自动启用特定于编译器的优化。当您希望手动禁用它们时,可以设置以下环境变量:`DISABLE_BLOSC_SSE2` 和 `DISABLE_BLOSC_AVX2`。

setuptools 仅限于使用环境变量 `CC` 指定的编译器,在 posix 系统上通常是 gcc。这通常会导致与 Snappy 编解码器相关的问题,因为它是用 C++ 编写的,因此 Snappy 默认未被编译。该问题在 MSVC 或 clang 中不会影响。由于 Snappy 的压缩性能低于其他编解码器,因此在 Blosc 中被认为是可选的。

(3)、编译已安装的 Blosc 库

这种方法使用通过 CMake 构建的预构建的完全优化版本的 Blosc。

请访问 [https://github.com/Blosc/c-blosc/releases](https://github.com/Blosc/c-blosc/releases) 下载并安装 C-Blosc 库。然后,您可以通过以下几种方式向 python-blosc 指明 C-Blosc 库的位置:

– 使用环境变量:

$ export USE_SYSTEM_BLOSC=1                 # 或在 Windows 上使用 "set USE_SYSTEM_BLOSC=1"

$ export Blosc_ROOT=/usr/local/customprefix   # 如果您将 Blosc 安装到了自定义位置

$ python setup.py build_ext --inplace

– 使用标志:

$ python setup.py build_ext --inplace -DUSE_SYSTEM_BLOSC:BOOL=YES -DBlosc_ROOT:PATH=/usr/local/customprefix

(4)、测试

编译后,您可以通过运行 blosc/test.py 中的 doctests 快速检查软件包是否正常:

$ python -m blosc.test  (添加 -v 以启用详细模式)

安装后,您可以随时通过以下命令重新运行测试:

$ python -c "import blosc; blosc.test()"

(5)、基准测试

如果您感兴趣,可以运行一个小基准测试,将普通的 NumPy 数组复制与您在 Blosc 构建中通过不同压缩器的压缩进行比较:

$ PYTHONPATH=. python bench/compress_ptr.py

仅仅为了激发您的兴趣,这里是针对 Intel Xeon E5-2695 v3 @ 2.30GHz、运行 Python 3.5 和 CentOS 7 的结果,您的结果可能会有所不同(并且确实会有所不同!)。

blosc的案例应用

持续更新中……

作者:一个处女座的程序猿

物联沃分享整理
物联沃-IOTWORD物联网 » Py之Python-Blosc:blosc的简介、安装和使用方法、案例应用之详细攻略

发表回复