Вещание очень полезно для такого рода вещей. Я не уверен, что это то, что вам нужно, но здесь я использую радиовещание, чтобы найти смещение между p (одна точка в 3-пространстве) и X (набор из 10 точек в 3-пространстве).
import numpy as np
def closest(X, p):
disp = X - p
return np.argmin((disp*disp).sum(1))
X = np.random.random((10, 3))
p = np.random.random(3)
print X
#array([[ 0.68395953, 0.97882991, 0.68826511],
# [ 0.57938059, 0.24713904, 0.32822283],
# [ 0.06070267, 0.06561339, 0.62241713],
# [ 0.93734468, 0.73026772, 0.33755815],
# [ 0.29370809, 0.76298588, 0.68728743],
# [ 0.66248449, 0.6023311 , 0.76704199],
# [ 0.53490144, 0.96555923, 0.43994738],
# [ 0.23780428, 0.75525843, 0.46067472],
# [ 0.84240565, 0.82573202, 0.56029917],
# [ 0.66751884, 0.31561133, 0.19244683]])
print p
#array([ 0.587416 , 0.4181857, 0.2539029])
print closest(X, p)
#9