Самый быстрый способ за numpy получить расстояние n пар - PullRequest
0 голосов
/ 27 мая 2020

У меня есть n пар векторов с размерами m. Я хочу найти самый быстрый способ вычислить экулидовое расстояние этих n пар. Один из способов - перебрать каждую пару и вычислить расстояние между векторами.

1 Ответ

0 голосов
/ 27 мая 2020

Если я понимаю ваш вопрос, у вас есть два массива координат, и вам нужно поэлементное евклидово расстояние. В таком случае см. Следующий пример

>>> import numpy as np
>>> a = np.array([[1,2], [3,4], [5,6], [7,8]])
>>> b = np.array([[2,4], [1,1], [8,9], [1,2]])

Вы можете использовать numpy.linalg.norm вместе с аргументом axis для вычисления поэлементного евклидова расстояния

>>> np.linalg.norm(a - b, axis=1)
array([2.23606798, 3.60555128, 4.24264069, 8.48528137])
...