semvec/pypi-packages huggingface dataset:
pyvq 0.1.0
Python bindings for the Vq library
License: MIT
Requires Python: >=3.10
Keywords: vector-quantization, quantization, nearest-neighbor, data-compression, embeddings

## PyVq

[![Python version](https://img.shields.io/badge/python-%3E=3.10-3776ab?style=flat&labelColor=282c34&logo=python)](https://github.com/CogitatorTech/vq)
[![PyPI version](https://img.shields.io/pypi/v/pyvq?style=flat&labelColor=282c34&color=3775a9&logo=pypi)](https://badge.fury.io/py/pyvq)
[![Documentation](https://img.shields.io/badge/docs-read-00acc1?style=flat&labelColor=282c34&logo=readthedocs)](https://CogitatorTech.github.io/vq/python)
[![License: MIT](https://img.shields.io/badge/license-MIT-0288d1?style=flat&labelColor=282c34&logo=open-source-initiative)](LICENSE)

PyVq provides Python bindings for [Vq](https://github.com/CogitatorTech/vq) vector quantization library.

### Installation

```bash
pip install pyvq
```

### Quickstart

```python
import numpy as np
import pyvq

# Binary quantization
bq = pyvq.BinaryQuantizer(threshold=0.0, low=0, high=1)
vector = np.array([-0.5, 0.0, 0.5, 1.0], dtype=np.float32)
codes = bq.quantize(vector)
print(f"Binary codes: {codes}")  # [0, 1, 1, 1]

# Scalar quantization  
sq = pyvq.ScalarQuantizer(min=-1.0, max=1.0, levels=256)
quantized = sq.quantize(vector)
reconstructed = sq.dequantize(quantized)
print(f"Reconstructed: {reconstructed}")

# Distance computation
dist = pyvq.Distance.euclidean()
a = np.array([1.0, 2.0, 3.0], dtype=np.float32)
b = np.array([4.0, 5.0, 6.0], dtype=np.float32)
print(f"Distance: {dist.compute(a, b)}")

# Check the SIMD backend in use
print(f"SIMD Backend: {pyvq.get_simd_backend()}")
```

### Documentation

Visit PyVq's [documentation page](https://CogitatorTech.github.io/vq/python) for more information including examples and API references.

### License

PyVq is licensed under the [MIT License](LICENSE).