qtdigest
python implementation of Dunning's T-Digest, inspired by nodejs tdigest
Install
pip install qtdigest
Usage
from qtdigest import Tdigest
t = Tdigest()
for i in xrange(1000):
t.push(random())
P90 = t.percentile(0.9)
print 'P90 = ', P90
API
Tdigest(delta=0.01, K=25, CX=1.1)
-
delta: the compression factor, the max fraction of mass that can be owned by one centroid (bigger, up to 1.0, means more compression). -
K: a size threshold that triggers recompression as the TDigest grows during input -
CX: specifies how often to update cached cumulative totals used for quantile estimation during ingest. -
return: Tdigest instance
Instance of Tdigest
-
push(x, n): add data with value x and weight n -
size(): return the count of centroids -
toList(): return the list of all centroids data -
percentile(p): return the percentage of p(0..1) -
serialize(): serialize tdigest instance to string, ie:0.01~25~2~0.00064~0.0013~2~20 -
simpleSerialize(): simply serialize tdigest instance to string, ie:0.00064~2~0.0013~20 -
deserialize(serialized_str): deserialize the serialized string to tdigest instance. it is a classmethod, so can be called byTdigest.deserialize(serialized_str)
Performance
platform: 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 |
Metadata
Release files for qtdigest 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qtdigest-0.3.1.tar.gz | 3.5 kB | Details |
Release files / qtdigest-0.3.1.tar.gz
| Download URL | qtdigest-0.3.1.tar.gz |
|---|---|
| Size | 3.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd4c80641a1d83c0a0b2fd3dc8308327a02d25911cc0360459fba5164d7c08eb
|
|
BLAKE2b-256 checksum How to use checksums |
df223fb1e57f71e6c999389ce3a2e6e11b1fe6de222127fd05583208295a0b51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15
|