{ "info": { "author": "zskymn", "author_email": "zsymn@163.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Topic :: Scientific/Engineering" ], "description": "# qtdigest\n\npython implementation of Dunning's T-Digest, inspired by [nodejs tdigest](https://github.com/welch/tdigest)\n\n## Install\n\n```sh\npip install qtdigest\n```\n\n## Usage\n\n```python\nfrom qtdigest import Tdigest\n\nt = Tdigest()\nfor i in xrange(1000):\n t.push(random())\nP90 = t.percentile(0.9)\nprint 'P90 = ', P90\n```\n\n## API\n\n### Tdigest(delta=0.01, K=25, CX=1.1)\n\n* `delta`: the compression factor, the max fraction of mass that can be owned by one centroid (bigger, up to 1.0, means more compression).\n\n* `K`: a size threshold that triggers recompression as the TDigest grows during input\n\n* `CX`: specifies how often to update cached cumulative totals used for quantile estimation during ingest.\n\n* `return`: Tdigest instance\n\n### Instance of Tdigest\n* `push(x, n)`: add data with value x and weight n\n\n* `size()`: return the count of centroids\n\n* `toList()`: return the list of all centroids data\n\n* `percentile(p)`: return the percentage of p(0..1)\n\n* `serialize()`: serialize tdigest instance to string, ie: `0.01~25~2~0.00064~0.0013~2~20`\n\n* `simpleSerialize()`: simply serialize tdigest instance to string, ie: `0.00064~2~0.0013~20`\n\n* `deserialize(serialized_str)`: deserialize the serialized string to tdigest instance. it is a classmethod, so can be called by `Tdigest.deserialize(serialized_str)`\n\n## Performance\n\nplatform\uff1a MacBook Pro (2.6 GHz Intel Core i5)\n\n|data size (push times)|cost time|\n|--|--|\n|1K|0.07s|\n|10K|0.2s|\n|100K|1.7s|\n|1M|17s|", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/QunarOPS/qtdigest", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "qtdigest", "package_url": "https://pypi.org/project/qtdigest/", "platform": "", "project_url": "https://pypi.org/project/qtdigest/", "project_urls": { "Homepage": "https://github.com/QunarOPS/qtdigest" }, "release_url": "https://pypi.org/project/qtdigest/0.3.1/", "requires_dist": null, "requires_python": "", "summary": "python implementation of Dunning's T-Digest", "version": "0.3.1" }, "last_serial": 4640834, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "117df14e3a3a03b93f8e7c8508795d40", "sha256": "70498e82f1c85c3143152e2c44b075dc636b455590173aca2d7a35c188f4d0c1" }, "downloads": -1, "filename": "qtdigest-0.0.1.tar.gz", "has_sig": false, "md5_digest": "117df14e3a3a03b93f8e7c8508795d40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2393, "upload_time": "2017-08-24T10:31:52", "url": "https://files.pythonhosted.org/packages/49/7b/b21d905d66ddb3259ed304874beeeb1b983e7bb9915a76c2a6818853b92d/qtdigest-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "53236bcdd052684051ed167d92c34b4b", "sha256": "f008275e31ac0e655988b70fca2eb7aac9d3d54744fbaa5e60505546aafc52cf" }, "downloads": -1, "filename": "qtdigest-0.0.2.tar.gz", "has_sig": false, "md5_digest": "53236bcdd052684051ed167d92c34b4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2821, "upload_time": "2017-08-24T11:25:16", "url": "https://files.pythonhosted.org/packages/6a/cc/4ed19790cf2747486b4785eefb6e891899cb8844420c019dd33bf08d67ec/qtdigest-0.0.2.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4856805190b4bdeefafccbf07d36bbbc", "sha256": "9ee2879c483193508e89cdf1c0679d7363d5141bfc9a4e3119ea351123cba701" }, "downloads": -1, "filename": "qtdigest-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4856805190b4bdeefafccbf07d36bbbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3177, "upload_time": "2017-08-28T23:54:14", "url": "https://files.pythonhosted.org/packages/90/40/fc486c2470b139eff061231b02352e68f8367834fccc0d14d3bc3e75cb44/qtdigest-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "89f765d2cdbbf3f76f151c8ff8b35246", "sha256": "4b447a2fe99edc8015ff7d93e80d581fd452d2ad02bc3391dd181f55db99eec5" }, "downloads": -1, "filename": "qtdigest-0.1.2.tar.gz", "has_sig": false, "md5_digest": "89f765d2cdbbf3f76f151c8ff8b35246", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3165, "upload_time": "2018-12-26T05:49:06", "url": "https://files.pythonhosted.org/packages/04/d8/5304851ead302eaceb659e9e774abf19240406bfb5b538429765ffee53c0/qtdigest-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "813ffdaf1fe230909032df5bd170877d", "sha256": "a64b6c34782aa72d223999b10171898040d4b8a1b1ccd7d6691763038efa3b07" }, "downloads": -1, "filename": "qtdigest-0.2.0.tar.gz", "has_sig": false, "md5_digest": "813ffdaf1fe230909032df5bd170877d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3250, "upload_time": "2018-12-27T09:18:40", "url": "https://files.pythonhosted.org/packages/bf/f9/3fa850e13baf1aa4a16f92242db699d7726edc236aafcd7a3fc70a14be3f/qtdigest-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e48e61cacc5f3b0859c2639086821380", "sha256": "621b19f8bbb8acd42c3f03965e4c2ef94094ae2e788c14f339eb25ffd888c77a" }, "downloads": -1, "filename": "qtdigest-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e48e61cacc5f3b0859c2639086821380", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3249, "upload_time": "2018-12-27T09:34:32", "url": "https://files.pythonhosted.org/packages/00/3e/7118e0d78d0bbe0234b30838c6d9875a0f9b12c0264f7bfebdf5701eb5d4/qtdigest-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b93c8c02bcf2b85548053b16a28ac26a", "sha256": "bd4c80641a1d83c0a0b2fd3dc8308327a02d25911cc0360459fba5164d7c08eb" }, "downloads": -1, "filename": "qtdigest-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b93c8c02bcf2b85548053b16a28ac26a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3536, "upload_time": "2018-12-28T12:23:19", "url": "https://files.pythonhosted.org/packages/df/22/3fb1e57f71e6c999389ce3a2e6e11b1fe6de222127fd05583208295a0b51/qtdigest-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b93c8c02bcf2b85548053b16a28ac26a", "sha256": "bd4c80641a1d83c0a0b2fd3dc8308327a02d25911cc0360459fba5164d7c08eb" }, "downloads": -1, "filename": "qtdigest-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b93c8c02bcf2b85548053b16a28ac26a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3536, "upload_time": "2018-12-28T12:23:19", "url": "https://files.pythonhosted.org/packages/df/22/3fb1e57f71e6c999389ce3a2e6e11b1fe6de222127fd05583208295a0b51/qtdigest-0.3.1.tar.gz" } ] }