Хотя вы можете использовать векторизацию, подход @ Karl будет довольно медленным с массивными массивами.
Более простой подход - просто сделать np.hypot(*(points - single_point).T)
. (Транспонирование предполагает, что точки - это массив Nx2, а не 2xN. Если это 2xN, вам не нужно .T
.
Однако это немного нечитаемо, так что вы пишете это более подробно, как показано ниже (используя некоторые примерные данные ...):
import numpy as np
single_point = [3, 4]
points = np.arange(20).reshape((10,2))
dist = (points - single_point)**2
dist = np.sum(dist, axis=1)
dist = np.sqrt(dist)