# Rolling Quantiles for NumPy
## Hyper-efficient and composable filters.
* Simple, clean, intuitive interface.
* Supports streaming data or bulk processing.
* Python 3 bindings for a compact library written in pure C.
### A Quick Tour
```python
import numpy as np
import rolling_quantiles as rq
pipe = rq.Pipeline( # rq.Pipeline is the only stateful object
# declare a cascade of filters by a sequence of immutable description objects
rq.LowPass(window=200, portion=100, subsample_rate=2),
# the above takes a median (100 out of 200) of the most recent 200 points
# and then spits out every other one
rq.HighPass(window=10, portion=3, subsample_rate=1))
# that subsampled rolling median is then fed into this filter that takes a
# 30% quantile on a window of size 10, and subtracts it from its raw input
# the pipeline exposes a set of read-only attributes that describe it
pipe.lag # = 60.0, the effective number of time units that the real-time output
# is delayed from the input
pipe.stride # = 2, how many inputs it takes to produce an output
# (>1 due to subsampling)
input = np.random.randn(1000)
output = pipe.feed(input) # the core, singular exposed method
# every other output will be a NaN to demarcate unready values
subsampled_output = output[1::pipe.stride]
```
See the [Github repository](https://github.com/marmarelis/rolling-quantiles) for more details.
Raw data
{
"_id": null,
"home_page": "https://github.com/marmarelis/rolling-quantiles",
"name": "rolling-quantiles",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "numpy,filter,numeric,signal,streaming,scipy,quantiles,rolling,efficient,realtime",
"author": "Myrl Marmarelis",
"author_email": "myrl@marmarel.is",
"download_url": "",
"platform": null,
"description": "# Rolling Quantiles for NumPy\n## Hyper-efficient and composable filters.\n\n* Simple, clean, intuitive interface.\n* Supports streaming data or bulk processing.\n* Python 3 bindings for a compact library written in pure C.\n\n### A Quick Tour\n\n```python\nimport numpy as np\nimport rolling_quantiles as rq\n\npipe = rq.Pipeline( # rq.Pipeline is the only stateful object\n # declare a cascade of filters by a sequence of immutable description objects\n rq.LowPass(window=200, portion=100, subsample_rate=2),\n # the above takes a median (100 out of 200) of the most recent 200 points\n # and then spits out every other one\n rq.HighPass(window=10, portion=3, subsample_rate=1))\n # that subsampled rolling median is then fed into this filter that takes a\n # 30% quantile on a window of size 10, and subtracts it from its raw input\n\n# the pipeline exposes a set of read-only attributes that describe it\npipe.lag # = 60.0, the effective number of time units that the real-time output\n # is delayed from the input\npipe.stride # = 2, how many inputs it takes to produce an output\n # (>1 due to subsampling)\n\n\ninput = np.random.randn(1000)\noutput = pipe.feed(input) # the core, singular exposed method\n\n# every other output will be a NaN to demarcate unready values\nsubsampled_output = output[1::pipe.stride]\n```\n\nSee the [Github repository](https://github.com/marmarelis/rolling-quantiles) for more details.\n",
"bugtrack_url": null,
"license": "",
"summary": "Composable and blazing fast rolling-quantile filters for streaming data and bulk batches.",
"version": "1.1.0",
"project_urls": {
"Homepage": "https://github.com/marmarelis/rolling-quantiles"
},
"split_keywords": [
"numpy",
"filter",
"numeric",
"signal",
"streaming",
"scipy",
"quantiles",
"rolling",
"efficient",
"realtime"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3449bde675f398833ba5655ccbdca9a5e338067cf3e53dd3a48809d70148df00",
"md5": "859e89478b38e4ce7ce0420f8cd10d05",
"sha256": "dbd1cb4d16ec2dae7bf2856c8b598d890e649ea00013602d9bc3a38cd1b63328"
},
"downloads": -1,
"filename": "rolling_quantiles-1.1.0-cp38-cp38-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "859e89478b38e4ce7ce0420f8cd10d05",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.7",
"size": 17157,
"upload_time": "2022-06-02T18:00:18",
"upload_time_iso_8601": "2022-06-02T18:00:18.675288Z",
"url": "https://files.pythonhosted.org/packages/34/49/bde675f398833ba5655ccbdca9a5e338067cf3e53dd3a48809d70148df00/rolling_quantiles-1.1.0-cp38-cp38-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b125179c427734a2fded73aca55eaf6bbc4b7e0786ca59c8d6a7d34d54ae11ae",
"md5": "b4193eb0e2dbc773b95967738a453fa0",
"sha256": "cc6e702be058660644d41f6dc74a3973389fab85571eda3f143a667f1d243385"
},
"downloads": -1,
"filename": "rolling_quantiles-1.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "b4193eb0e2dbc773b95967738a453fa0",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.7",
"size": 52301,
"upload_time": "2022-06-02T18:00:20",
"upload_time_iso_8601": "2022-06-02T18:00:20.957021Z",
"url": "https://files.pythonhosted.org/packages/b1/25/179c427734a2fded73aca55eaf6bbc4b7e0786ca59c8d6a7d34d54ae11ae/rolling_quantiles-1.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f7d03e3148768e578b3da345900c4ec1eb259c97bcc87086ab1710fe3b08d264",
"md5": "e72006b541aa532c25be0744e05c44c9",
"sha256": "c2e85476a8c65e20def7d0c0ce849046caa942e110b42b98033937ac4b0b2b25"
},
"downloads": -1,
"filename": "rolling_quantiles-1.1.0-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "e72006b541aa532c25be0744e05c44c9",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.7",
"size": 17733,
"upload_time": "2022-06-02T18:00:22",
"upload_time_iso_8601": "2022-06-02T18:00:22.267808Z",
"url": "https://files.pythonhosted.org/packages/f7/d0/3e3148768e578b3da345900c4ec1eb259c97bcc87086ab1710fe3b08d264/rolling_quantiles-1.1.0-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ee1d4402a80d71f7a27f595af36347257b4507f1bb679677015c049cbeccbd4c",
"md5": "cbaa4a51a97bcf2865dde06090b25e1c",
"sha256": "d5db3b233a4f78f3d2af3496f8952a23ea260f2db227511359991a8137d680df"
},
"downloads": -1,
"filename": "rolling_quantiles-1.1.0-cp39-cp39-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "cbaa4a51a97bcf2865dde06090b25e1c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.7",
"size": 17159,
"upload_time": "2022-06-02T18:00:23",
"upload_time_iso_8601": "2022-06-02T18:00:23.549916Z",
"url": "https://files.pythonhosted.org/packages/ee/1d/4402a80d71f7a27f595af36347257b4507f1bb679677015c049cbeccbd4c/rolling_quantiles-1.1.0-cp39-cp39-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "911b2893aa67f37551e8d6071fa6f9df0da0c4e8ed6ffe4014399e019832686c",
"md5": "6f3149261bcafc90a5b1752d52a038ef",
"sha256": "9d369bc6a65b133b22afe82125a8fabdf4d9dc5d07a39ebd16ccbb853ef5a888"
},
"downloads": -1,
"filename": "rolling_quantiles-1.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "6f3149261bcafc90a5b1752d52a038ef",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.7",
"size": 52441,
"upload_time": "2022-06-02T18:00:24",
"upload_time_iso_8601": "2022-06-02T18:00:24.884960Z",
"url": "https://files.pythonhosted.org/packages/91/1b/2893aa67f37551e8d6071fa6f9df0da0c4e8ed6ffe4014399e019832686c/rolling_quantiles-1.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fd41b4087abc6b138f16a44ea84e16cd851a1bcb35c8656e11f19d213a5b2b0c",
"md5": "2722b0410d8759aec874340cdb9644f5",
"sha256": "d26175b1aa25aeeca552229358be29d7346954a02da7ceacd434c188c6622dcb"
},
"downloads": -1,
"filename": "rolling_quantiles-1.1.0-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "2722b0410d8759aec874340cdb9644f5",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.7",
"size": 17740,
"upload_time": "2022-06-02T18:00:26",
"upload_time_iso_8601": "2022-06-02T18:00:26.389868Z",
"url": "https://files.pythonhosted.org/packages/fd/41/b4087abc6b138f16a44ea84e16cd851a1bcb35c8656e11f19d213a5b2b0c/rolling_quantiles-1.1.0-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-06-02 18:00:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "marmarelis",
"github_project": "rolling-quantiles",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "rolling-quantiles"
}