Я пытаюсь найти евклидово расстояние между наборами координат и фиксированной точкой.
У меня есть наборы MxN координат x, y, z, и я хочу найти расстояние между ними и фиксированной координатой x, y, z.
Я знаю, что могу использовать пару циклов for для итерации и вычисления расстояний 1 на 1 с помощью scipy.spatial.distance.euclidean, но это занимает много времени, когда количество координат становится большим (например, 100x40). Есть ли способ сделать это более эффективно?
Очень краткий пример для obchardon
c = np.array([[[1,2,3],[4,5,6,]],[[1,1,1],[2,2,2]],[[6,5,4],[2,3,1]]])
# shape = (3,2,3) so 3x2 sets of x,y,z coords, so desire 3x2=6 sets of distances
s = np.array([[0],[0],[1]])
DISTANCEFUNC(c,s) -> 3x2 sets of euclidean distances
@obchardon Я отредактировал его, чтобы привести пример

Вы можете использовать np.linalg.norm:
import numpy as np
coords = np.random.rand(M, N, 3) # Your sets of coordinates here
fixed = np.random.rand(3) # Fixed coordinate
distances = np.linalg.norm(coords - fixed, axis=2)
# shape (M, N) of distances
Пожалуйста, создайте Минимальный воспроизводимый пример.