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 |
---|---|
1K | 0.07s |
10K | 0.2s |
100K | 1.7s |
1M | 17s |