Metadata-Version: 2.1
Name: cougar
Version: 0.5.3
Author: Yunchong Gan
Author-email: yunchong@pku.edu.cn
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: C
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires: numpy
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy

# cougar

A python C-extension for rolling window aggregations. Try to support more methods than `bottleneck` and run faster than `pandas`. Currently this is only a weekend project, feel free to contribute.


## Installation

```bash
pip install cougar
```

## Usage

```python
import numpy as np
import cougar as cg

arr = np.random.rand(1_000_000)
cg.rolling_mean(arr, 1_000)
```

## Supported Methods

| Method   | Time Complexity |
| -------- | --------------- |
| sum      | O(1)            |
| mean     | O(1)            |
| min      | O(1)            |
| max      | O(1)            |
| argmin   | O(1)            |
| argmax   | O(1)            |
| rank     | O(log n)        |
| quantile | O(log n)        |

## Benchmark

todo
