У меня есть 3 огромных числовых массива, и я хочу построить функцию, которая вычисляет евклидово расстояние попарно от точек одного массива до точек второго и третьего массива.
Ради простотыпредположим, у меня есть эти 3 массива:
a = np.array([[1.64,0.001,1.56,0.1],
[1.656,1.21,0.32,0.0001],
[1.0002,0.0003,1.111,0.0003],
[0.223,0.6665,1.2221,1.659]])
b = np.array([[1.64,0.001,1.56,0.1],
[1.656,1.21,0.32,0.0001],
[1.0002,0.0003,1.111,0.0003],
[0.223,0.6665,1.2221,1.659]])
c = np.array([[1.64,0.001,1.56,0.1],
[1.656,1.21,0.32,0.0001],
[1.0002,0.0003,1.111,0.0003],
[0.223,0.6665,1.2221,1.659]])
Я пробовал это:
def correlation(x, y, t):
from math import sqrt
for a,b, in zip(x,y,t):
distance = sqrt((x[a]-x[b])**2 + (y[a]-y[b])**2 + (t[a]-t[b])**2 )
return distance
Но этот код выдает ошибку: ValueError: too many values to unpack (expected 2)
Как я могу правильнореализовать эту функцию с помощью numpy или base python?
Заранее спасибо