python中的概率数据结构

pyprobables的Python项目详细描述


https://badge.fury.io/py/pyprobables.svghttps://coveralls.io/repos/github/barrust/pyprobables/badge.svghttps://travis-ci.org/barrust/pyprobables.svg?branch=masterDocumentation StatusLicenseDownloads

pyprobables是用于概率数据结构的纯python库。 目标是为开发人员提供 在工作中使用的常见概率数据结构。

为了获得更好的原始性能,建议提供替代方案 已在C中编译的哈希算法。这可能包括使用 提供或安装第三方软件包的MD5和SHA512算法,以及 写你自己的散列策略。有些选择包括杂音杂凑 mmh3或来自 pyhash库。中的每个数据对象 pyprobables使传递自定义哈希函数变得容易。

阅读有关如何使用Supplying a pre-defined, alternative hashing strategies的详细信息 或者Defining hashing function using the provided decorators

安装

PIP安装:

$ pip install pyprobables

从源安装:

要安装pyprobables,只需克隆repository on GitHub,然后从文件夹运行:

$ python setup.py install

pyprobables支持python版本2.7和3.3-3.6

API文档

的文档托管在 readthedocs.io

您可以运行以下命令在本地生成文档:

$ pip install sphinx
$ cd docs/
$ make html

自动测试

要运行自动测试,只需从 下载的文件夹:

$ python setup.py test

快速启动

导入pyprobables并设置bloom过滤器

fromprobablesimport(BloomFilter)blm=BloomFilter(est_elements=1000,false_positive_rate=0.05)blm.add('google.com')blm.check('facebook.com')# should return Falseblm.check('google.com')# should return True

导入PyProbables并设置计数最小草图

fromprobablesimport(CountMinSketch)cms=CountMinSketch(width=1000,depth=5)cms.add('google.com')# should return 1cms.add('facebook.com',25)# insert 25 at once; should return 25

导入pyprobables并设置布谷鸟过滤器

fromprobablesimport(CuckooFilter)cko=CuckooFilter(capacity=100,max_swaps=10)cko.add('google.com')cko.check('facebook.com')# should return Falsecko.check('google.com')# should return True

提供预定义的可选哈希策略

fromprobablesimport(BloomFilter)fromprobables.hashesimport(default_sha256)blm=BloomFilter(est_elements=1000,false_positive_rate=0.05,hash_function=default_sha256)blm.add('google.com')blm.check('facebook.com')# should return Falseblm.check('google.com')# should return True

使用提供的decorators定义散列函数

importmmh3# murmur hash 3 implementation (pip install mmh3)frompyprobables.hashesimport(hash_with_depth_bytes)frompyprobablesimport(BloomFilter)@hash_with_depth_bytesdefmy_hash(key):returnmmh3.hash_bytes(key)blm=BloomFilter(est_elements=1000,false_positive_rate=0.05,hash_function=my_hash)
importmmh3# murmur hash 3 implementation (pip install mmh3)frompyprobables.hashesimport(hash_with_depth_int)frompyprobablesimport(BloomFilter)@hash_with_depth_intdefmy_hash(key,encoding='utf-8'):max64mod=UINT64_T_MAX+1val=int(hashlib.sha512(key.encode(encoding)).hexdigest(),16)returnval%max64modblm=BloomFilter(est_elements=1000,false_positive_rate=0.05,hash_function=my_hash)

API documentation 对于其他可用的数据结构和 quickstart page 更多的例子!

更改日志

请参阅changelog获取列表 所有的变化。

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

推荐PyPI第三方库


热门话题
jframe为什么JAVA paint()方法不起作用?   java Guice:将ContainerRequestContext注入拦截器   java如何优雅地关闭Spring JMS MessageListenerAdapter   java如何在Spring中设置快照隔离级别   Java中的安卓平台独立信任存储路径   java无法在eclipse中运行hello world程序   java Sinch空指针问题   使用Java将JSON流式传输到BigQuery   java从“大数据”中选择什么Swing控件?   java通过对象字段过滤/排序集合?   java将数据从活动传递到另一个活动中的片段   java访问打包在jar文件中的文档   Java获取事件的大小。getDragboard()。getFiles()。流()。映射(文件::长度)。toString());   java Android libgdx:启动程序图标按下后,启动屏幕不会立即显示   java如何在Google App Engine灵活环境中配置oracle jdk   java有没有办法减少这些行?   Java:客户端socket不读取第二行,在终止符行之后保持打开状态   java以编程方式获取api 29上的所有APK文件   java ActionBar按钮不显示