概率数据结构

probstructs的Python项目详细描述


概率结构

^ Tt1}$很容易使用Python包装器用于C++库probstructs。它支持指数直方图、计数最小草图(CM草图)和指数计数最小草图(ECM草图)。在

build statusDocumentation StatusVersionPy VersionsGitHub stars

安装

使用pip:

pip install probstructs

来源:

^{pr2}$

CountMinSketch

计数-最小草图(CM草图)是一种概率数据结构,用作数据流中事件的频率表。它使用哈希函数将事件映射到频率,但与哈希表不同的是,哈希表只使用次线性空间,代价是由于碰撞而导致的某些事件的计算过多。在

C++文档:https://probstructs.readthedocs.io/en/latest/classes.html#countminsketch

fromprobstructsimportCountMinSketchcm_sketch=CountMinSketch(100,4)cm_sketch.inc("aaa",1)cm_sketch.inc("bbb",5)cm_sketch.inc("aaa",2)print(cm_sketch.get("aaa"))# 3print(cm_sketch.get("bbb"))# 5print(cm_sketch.get("ccc"))# 0cm_sketch=CountMinSketch(width=100,depth=4)cm_sketch.inc(key="bbb",delta=5)print(cm_sketch.get(key="bbb"))# 5

指数直方图

指数直方图(EH)是一种概率数据结构,用作流中最后N个元素中特定元素的频率计数器。。在

C++文档:https://probstructs.readthedocs.io/en/latest/classes.html#exponentialhistorgram

fromprobstructsimportExponentialHistorgrameh=ExponentialHistorgram(1)eh.inc(1,1)print(eh.get(1,1))# 1eh.inc(1,1)print(eh.get(1,1))# 2eh.inc(2,1)print(eh.get(1,2))# 1eh=ExponentialHistorgram(window=1)eh.inc(tick=1,delta=1)print(eh.get(window=1,tick=1))# 1eh.inc(tick=1,delta=1)print(eh.get(window=1,tick=1))# 2eh.inc(tick=2,delta=1)print(eh.get(window=1,tick=2))# 1

指数统计MinSketch

指数计数最小草图(ECM草图)结合CM草图和EH来计算流中最后N个元素中不同元素的数量。在

C++文档:https://probstructs.readthedocs.io/en/latest/classes.html#exponentialcountminsketch

fromprobstructsimportExponentialCountMinSketchecm_sketch=ExponentialCountMinSketch(100,4,8)ts=0ecm_sketch.inc("aaa",ts,1)ecm_sketch.inc("bbb",ts,4)ecm_sketch.inc("ccc",ts,8)print(ecm_sketch.get("aaa",4,ts))# 1print(ecm_sketch.get("bbb",4,ts))# 4print(ecm_sketch.get("ccc",4,ts))# 8print(ecm_sketch.get("ddd",4,ts))# 0ecm_sketch=ExponentialCountMinSketch(width=100,depth=4,window=8)ts=0ecm_sketch.inc(key="aaa",tick=ts,delta=1)ecm_sketch.inc(key="bbb",tick=ts,delta=4)ecm_sketch.inc(key="ccc",tick=ts,delta=8)print(ecm_sketch.get(key="aaa",window=4,tick=ts))# 1print(ecm_sketch.get(key="bbb",window=4,tick=ts))# 4print(ecm_sketch.get(key="ccc",window=4,tick=ts))# 8print(ecm_sketch.get(key="ddd",window=4,tick=ts))# 0

变更日志

0.2.0

  • 引入命名参数
  • 更新文档以包含示例

0.1.0

  • 初始版本

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

推荐PyPI第三方库


热门话题
java MongoOperations Upert/FindModify删除mongo中的所有字段   java括号中的二叉树,而!=空值无效   java com.*.*.**。安全CustomUserDetail无法强制转换为com。***。安全CustomUserDetail   java如何编写多线程算法来发现可用socket   java Spring Boot Solr:子文档的索引列表   java如何向maven shade插件添加外部jar文件   java zebra条形码扫描仪Android studio集成   java为什么一个地方的原始类型会导致其他地方的通用调用站点被视为原始类型?   java将swing控件拆分为相等的部分   java如何在jshell中为spring项目设置类路径   java关于如何从API级别19的时间选择器中删除此白边的提示?   存储二进制字符串所有可能序列的算法,Java   测试JUnitJava。lang.NullPointerException   java Google AppEngine数据库   JavaSpring如何向数据对象注入@Value?   在eclipse java项目中包含mavenant构建库   带有JSP/EL的java省略号(缩写文本)