SciKits

Quick search

scikits.ann

version 0.2.dev-r803

Approximate Nearest Neighbor library wrapper for Numpy

Download: http://pypi.python.org/pypi/scikits.ann
Homepage: http://scipy.org/scipy/scikits/wiki/AnnWrapper
PyPI: http://pypi.python.org/pypi/scikits.ann
People: Barry Wark

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]]))

Installation

PyPI

You can download the latest distribution from PyPI here: http://pypi.python.org/pypi/scikits.ann

Using pip

You can install scikits.ann for yourself from the terminal by running:

pip install --user scikits.ann

If you want to install it for all users on your machine, do:

pip install scikits.ann
On Linux, do sudo pip install scikits.ann.

If you don't yet have the pip tool, you can get it following these instructions.

This package was discovered in PyPI.