dunning的t-digest的python实现

qtdigest的Python项目详细描述


季度摘要

dunning的t-digest的python实现,灵感来自nodejs tdigest

安装

pip install qtdigest

用法

fromqtdigestimportTdigestt=Tdigest()foriinxrange(1000):t.push(random())P90=t.percentile(0.9)print'P90 = ',P90

API

t最大值(delta=0.01,k=25,cx=1.1)

  • delta:压缩因子,一个质心所能拥有的最大质量分数(大到1.0,意味着更多的压缩)。

  • K:一个大小阈值,当输入过程中tdigest增大时触发重新压缩

  • CX:指定在摄取期间更新用于分位数估计的缓存累积总计的频率。

  • return:t最大实例

tdiest

实例
  • push(x, n):添加值x和权重n的数据

  • size():返回质心的计数

  • toList():返回所有质心数据的列表

  • percentile(p):返回p(0..1)的百分比

  • serialize():将tdigest实例序列化为字符串,即:0.01~25~2~0.00064~0.0013~2~20

  • simpleSerialize():简单地将tdigest实例序列化为字符串,即:0.00064~2~0.0013~20

  • deserialize(serialized_str):将序列化字符串反序列化为tdiest实例。它是一个类方法,因此可以由Tdigest.deserialize(serialized_str)

    调用。

性能

平台:MacBook Pro(2.6 GHz Intel Core i5)

data size (push times)cost time
1K0.07s
10K0.2s
100K1.7s
1M17s

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

推荐PyPI第三方库


热门话题
HTTP标头的java InputStream未终止   java测试SpringWebListener   具有定义的替换编号Java的regex ReplaceAll   在java中使用contains()方法   java在选择查询中使用JoinColumn字段   具有用户的java Start-stop demon不是以给定用户启动   java glBufferData生成GL\u无效\u操作   java中循环代码的循环   Java位无符号移位(>>>>)会产生奇怪的结果   java HQL使用点分隔符从select获取结果   条纹、弹簧、玩耍(或?):使用哪种高性能Java框架?   广播接收机中的java停止服务   java回收器视图占据整个屏幕。不在上面显示我的UI元素   java使MySQL查询更快   java MappedByteBuffer查询   java递归算法问题