print(__doc__)

from sklearn.neighbors import NearestNeighbors
import numpy as np

#X是一个包含6个元素的数据集，每个元素是一个二维坐标
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])

#nbrs是一个KNN模型实例，2个邻近的邻居，算法是ball_tree，算法还可以是Brute Force或者K-D Tree
nbrs = NearestNeighbors(n_neighbors=2, algorithm='ball_tree').fit(X)

#nbrs.kneibghbors返回2个数组，distances表示被选出的2个邻居和原来这个点的距离，indices是个索引，表示哪几个元素被选出成为了邻居（6个里面选2个，其中一个是自己），所以distances和indices都是（6，2）的形状
distances, indices = nbrs.kneighbors(X)

print distances
print indices

print nbrs.kneighbors_graph(X).toarray()



