在朴素的python代码中,二进制序列的lempel ziv复杂性。

Lempel-Ziv_Complexit的Python项目详细描述


此存储库包含一个小型、简单且高效的Lempel-Ziv complexity算法实现。

示例

简单用法

如果可以在您的路径或python的路径中访问lempel_ziv_complexity.py文件:

>>>fromlempel_ziv_complexityimportlempel_ziv_complexity>>>s='1001111011000010'>>>lempel_ziv_complexity(s)# 1 / 0 / 01 / 1110 / 1100 / 00106

文件

this file

C延伸

如果可以在您的路径或python的路径中访问lempel_ziv_complexity.so文件,则可以使用相同的文件。

小基准

还有一个cython版本,可以更快地实现:

$ipython...>>>s='1001111011000010'>>>%timeitlempel_ziv_complexity(s)6.1µs±33.6nsperloop(mean±std.dev.of7runs,100000loopseach)>>>%timeitlempel_ziv_complexity_cython(s)132ns±2.55nsperloop(mean±std.dev.of7runs,10000000loopseach)

加速通常在X50和X100之间。 它没有随pypi版本一起提供,如果需要,请参见directly on GitHub

演示Jupyter notebook

看这个笔记本:on nbviewever


安装并构建

手动

别紧张!

克隆这个存储库,进入文件夹,编译,测试,如果它有效, 安装它。

cd /tmp/
git clone https://GitHub.com/Naereen/Lempel-Ziv_Complexity
cd Lempel-Ziv_Complexity/src/
make build
make test# should pass
make install  # mv the build/lib*/*.so files where you need them

确保在需要时包含动态库,或在文件夹中 可由python解释器访问(在sys.path中的某个地方)。这个 文件是lempel_ziv_complexity_cython.so(对于python 2)或 lempel_ziv_complexity_cython.cpython-35m-x86_64-linux-gnu.so(用于 python 3.5或更高版本,修改名称)。

和皮普在一起?

此项目位于the Pypi package repository上。

sudo pip install lempel_ziv_complexity
python -c "from lempel_ziv_complexity import lempel_ziv_complexity; print(lempel_ziv_complexity('1001111011000010') == 6)"# test

关于

语言?

python v2.7+或python v3.1+。

  • Numba可以用来加速纯 python版本。
  • Cython是构建c扩展所需的 (更快)。

执照?

MIT Licensed(文件 LICENSE)。)Lilian Besson,2017年。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在ArrayList中比较数字   java在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?