sklearn-ann eases integration of approximate nearest neighbours libraries such as annoy, nmslib and faiss into your sklearn pipelines. It consists of:
Transformers conforming to the same interface as KNeighborsTransformer which can be used to transform feature matrices into sparse distance matrices for use by any estimator that can deal with sparse distance matrices. Many, but not all, of scikit-learn’s clustering and manifold learning algorithms can work with this kind of input.
RNN-DBSCAN: a variant of DBSCAN based on reverse nearest neighbours.
Installation
To install the latest release from PyPI, run:
pip install sklearn-ann
To install the latest development version from GitHub, run:
pip install git+https://github.com/scikit-learn-contrib/sklearn-ann.git#egg=sklearn-ann
Why? When do I want this?
The main scenarios in which this is needed is for performing clustering or manifold learning or high dimensional data. The reason is that currently the only neighbourhood algorithms which are build into scikit-learn are essentially the standard tree approaches to space partitioning: the ball tree and the K-D tree. These do not perform competitively in high dimensional spaces.
Development
This project is managed using Hatch and pre-commit. To get started, run pre-commit install and hatch env create. Run all commands using hatch run python <command> which will ensure the environment is kept up to date. pre-commit comes into play on every git commit after installation.
Consult pyproject.toml for which dependency groups and extras exist, and the Hatch help or user guide for more info on what they are.
Metadata
Release files for sklearn-ann 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sklearn_ann-0.1.4.tar.gz | 18.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sklearn_ann-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.3 kB
Release files / sklearn_ann-0.1.4.tar.gz
| Download URL | sklearn_ann-0.1.4.tar.gz |
|---|---|
| Size | 18.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
60e7c91de7a6bda1afe5a9082d4bc441c641291052d48242e5fb991d0acf81c0
|
|
BLAKE2b-256 checksum How to use checksums |
8e4107c7d40542513ac25014bb1bafe3f137adba717bf886603cbeca6521c007
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2025.
Transparency logRelease files / sklearn_ann-0.1.4-py3-none-any.whl
| Download URL | sklearn_ann-0.1.4-py3-none-any.whl |
|---|---|
| Size | 12.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c449454d1472f835ba223fcc2936a72d77e31ae31c5c1da4aca21c4e13dcad0f
|
|
BLAKE2b-256 checksum How to use checksums |
ba91b2f217d3570990d95c2483a8748658c5a22ac40609264e0ca32552dde0eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2025.
Transparency log