import numpy as np
from scipy.spatial.distance import cdist
from sklearn.datasets import make_classification
X, _ = make_classification(n_samples=20, n_features=4, n_classes=2, n_clusters_per_class=1, random_state=0)
A, B = X[:10, :], X[10:, :]
A.shape, B.shape
dist = cdist(A, B)
dist.shape
n_neighbors = 3
inds = np.argsort(dist, axis=1)[:, :n_neighbors]
dists = np.sort(dist, axis=1)[:, :n_neighbors]
print(inds, dists)
aW1wb3J0IG51bXB5IGFzIG5wCmZyb20gc2NpcHkuc3BhdGlhbC5kaXN0YW5jZSBpbXBvcnQgY2Rpc3QKZnJvbSBza2xlYXJuLmRhdGFzZXRzIGltcG9ydCBtYWtlX2NsYXNzaWZpY2F0aW9uCgoKWCwgXyA9IG1ha2VfY2xhc3NpZmljYXRpb24obl9zYW1wbGVzPTIwLCBuX2ZlYXR1cmVzPTQsIG5fY2xhc3Nlcz0yLCBuX2NsdXN0ZXJzX3Blcl9jbGFzcz0xLCByYW5kb21fc3RhdGU9MCkKQSwgQiA9IFhbOjEwLCA6XSwgWFsxMDosIDpdCkEuc2hhcGUsIEIuc2hhcGUKZGlzdCA9IGNkaXN0KEEsIEIpCmRpc3Quc2hhcGUKCm5fbmVpZ2hib3JzID0gMwppbmRzID0gbnAuYXJnc29ydChkaXN0LCBheGlzPTEpWzosIDpuX25laWdoYm9yc10KZGlzdHMgPSBucC5zb3J0KGRpc3QsIGF4aXM9MSlbOiwgOm5fbmVpZ2hib3JzXQoKcHJpbnQoaW5kcywgZGlzdHMpCg==