Skip to main content

Approximate Nearest Neighbor library wrapper for Numpy

Project description

The ANN module provides a numpy-compatible python wrapper around the
Approximate Nearest Neighbor library (http://www.cs.umd.edu/~mount/ANN/).

* Installation *
Download and build the Approximate Nearest Neighbor library. Modify the ANN section of
site.cfg so that ANN_ROOT is the path to the root of the Approximate Nearest Neighbor
library include/lib tree.
If /usr/local/include contains the ANN/ include directory and /usr/local/lib contains
libANN.a, then
ANN_ROOT = /usr/local

Run ::

python setup.py build_ext --inplace build test
sudo python setup.py install

from within the source directory.

* Usage *
scikits.ann exposes a single class, kdtree that wraps the Approximate Nearest Neighbor
library's kd-tree implementation. kdtree has a single (non-constructor) method, knn that
finds the indecies (of the points used to construct the kdtree) of the k-nearest neighbors
and the squared distances to those points. A little example will probably be much
more enlightening::
>>> import scikits.ann as ann

>>> import numpy as np

>>> k=ann.kdtree(np.array([[0.,0],[1,0],[1.5,2]]))

>>> k.knn([0,.2],1)
(array([[0]]), array([[ 0.04]]))

>>> k.knn([0,.2],2)
(array([[0, 1]]), array([[ 0.04, 1.04]]))

>>> k.knn([[0,.2],[.1,2],[3,1],[0,0]],2)
(array([[0, 1],
[2, 0],
[2, 1],
[1, 2]]), array([[ 0.04, 1.04],
[ 1.96, 4.01],
[ 3.25, 5. ],
[ 1. , 6.25]]))

>>> k.knn([[0,.2],[.1,2],[3,1],[0,0]],3)
(array([[ 0, 1, 2],
[ 2, 0, 1],
[ 2, 1, 0],
[ 1, 2, -1]]), array([[ 4.00000000e-002, 1.04000000e+000, 5.49000000e+000],
[ 1.96000000e+000, 4.01000000e+000, 4.81000000e+000],
[ 3.25000000e+000, 5.00000000e+000, 1.00000000e+001],
[ 1.00000000e+000, 6.25000000e+000, 1.79769313e+308]]))

Project details


Release history Release notifications

This version
History Node

0.2.dev-r803

History Node

0.2.dev-r801

History Node

0.2.dev-r800

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
scikits.ann-0.2.dev_r803-py2.5-macosx-10.5-i386.egg (84.3 kB) Copy SHA256 hash SHA256 Egg 2.5 Jan 31, 2008
scikits.ann-0.2.dev-r803.tar.gz (20.4 kB) Copy SHA256 hash SHA256 Source None Jan 31, 2008

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page