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]]))
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
Release history Release notifications | RSS feed
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
Close
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 |