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.

The Approximate Nearest Neighbor library is available from 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


Download files

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

Source Distribution

scikits.ann-0.2.dev-r801.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file scikits.ann-0.2.dev-r801.tar.gz.

File metadata

File hashes

Hashes for scikits.ann-0.2.dev-r801.tar.gz
Algorithm Hash digest
SHA256 db7c9c4f0330e9acfaf942b4ecb10921474745578e4cad477c72daf234373a19
MD5 87ebff577c4f29ce8cd66a874233bebc
BLAKE2b-256 564f764329c009e86599e28cf937c10e8c7d71f5e05ae8ff93440be06e2ad91b

See more details on using hashes here.

File details

Details for the file scikits.ann-0.2.dev_r801-py2.5-macosx-10.5-i386.egg.

File metadata

File hashes

Hashes for scikits.ann-0.2.dev_r801-py2.5-macosx-10.5-i386.egg
Algorithm Hash digest
SHA256 6ec616768d048425be955c578a8db47e7c5293ac158bc99da190871855b275fb
MD5 3ac79682c3cfe5ce71aedd08a58dbd11
BLAKE2b-256 23c32f1a9ba969420d03f4b0ce9e78cc63b5ab20146f42e563577cd890dc7b0e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page