Metadata-Version: 2.1
Name: range-compression
Version: 0.5.0
Summary: 
Home-page: https://github.com/myuanz/matrix-range-compression
License: LGPL
Author: myuan
Author-email: zhengmy@ion.ac.cn
Requires-Python: >=3.9,<3.13
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: importlib-metadata (>=6.6.0,<7.0.0) ; python_version >= "3.8" and python_version < "4.0"
Requires-Dist: numba (>=0.59)
Requires-Dist: numpy (>=1.26,<2)
Requires-Dist: polars (>=0.18)
Project-URL: Repository, https://github.com/myuanz/matrix-range-compression
Description-Content-Type: text/markdown

# 矩阵区间压缩

## Quick start

```bash
# https://pypi.org/project/range-compression/
pip install range-compression
```

```python
from range_compression import RangeCompressedMask, mask_encode
from pathlib import Path


mtx = .... # 带有很多连续值的矩阵
rcm = mask_encode(mtx)

X, Y = ..., ... # 要查找的 X, Y
res = rcm.find_index(X, Y)

assert res.shape == X.shape
assert (mtx[Y, X] == res).all()

# 也可以 rcm.save(p)
# 之后在其他地方 rcm = RangeCompressedMask.load(p)
```


## TODO

- [ ] 把性能测试添加到测试和 readme 中  
- [x] 每个版本做性能回归测试  
- [ ] 添加更多说明和直接能运行的快速入门  

## 关于 Python 版本

支持 >=3.8, <=3.12

但 numba0.59 已经不再支持 Python3.8，如果以后使用到了 numba 新版本的特性，那么 Python3.8 可能不再会支持

