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
python setup.py 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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

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

File metadata

File hashes

Hashes for scikits.ann-0.2.dev_r800-py2.5-macosx-10.5-i386.egg
Algorithm Hash digest
SHA256 ca3b205b2c864e754eaa383465d2eaabda3ac59c3901dd20367d98c9fc9b4509
MD5 82f1bd20bd388d03a43c68a310ec6ee0
BLAKE2b-256 2ad6c8751e424b44ea52c5d4213045d846ac20b21a8860cdf0de0c6a7f5d406f

See more details on using hashes here.

Supported by

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