Я хочу написать функцию для вычисления евклидова расстояния между координатами в list_a
до каждой из координат в list_b
и создания массива расстояний размером a
строк по b
столбцам (где a
- это число координат в list_a
, а b
- это количество координат в list_b
.
Примечание: я не хочу использовать для простоты любые библиотеки, кроме numpy.
list_a = np.array([[0,1], [2,2], [5,4], [3,6], [4,2]])
list_b = np.array([[0,1],[5,4]])
Запуск функции приведет к созданию:
>>> np.array([[0., 5.830951894845301],
[2.236, 3.605551275463989],
[5.830951894845301, 0.],
[5.830951894845301, 2.8284271247461903],
[4.123105625617661, 2.23606797749979]])
Я пытался запустить ниже
def run_euc(list_a,list_b):
euc_1 = [np.subtract(list_a, list_b)]
euc_2 = sum(sum([i**2 for i in euc_1]))
return np.sqrt(euc_2)
Но я получаю следующую ошибку:
ValueError: operands could not be broadcast together with shapes (5,2) (2,2)
Спасибо.