import numpy as np from scipy.spatial import KDTree source = np.random.rand(10,2) test = source[0] tree = KDTree(source) print tree.query(test,10)[1] n = source.shape[0] W = np.zeros((n, n)) for i in range(0, n): for j in range(0, n): W[i, j] = sum((source[i, ] - source[j, ]) ** 2) n = W.shape[0] finalRank = [0] * n top = np.argsort(W[0, :n]) i = 0 for e in top: finalRank[e] += i i += 1 print np.array(finalRank)