1. 程式人生 > >Python--歐式距離

Python--歐式距離

參考連結:https://www.cnblogs.com/denny402/p/7027954.html

歐氏距離(Euclidean Distance)
       歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。
(1)二維平面上兩點a(x1,y1)與b(x2,y2)間的歐氏距離:

(2)三維空間兩點a(x1,y1,z1)與b(x2,y2,z2)間的歐氏距離:

(3)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的歐氏距離:

(4)也可以用表示成向量運算的形式:

python中的實現:

import numpy as np
x=np.random.random(10)
y=np.random.random(10)

#方法一:根據公式求解
d1=np.sqrt(np.sum(np.square(x-y)))

#方法二:根據scipy庫求解
from scipy.spatial.distance import pdist
X=np.vstack([x,y])           #將x,y兩個一維數組合併成一個2D陣列 ;[[x1,x2,x3...],[y1,y2,y3...]]
d2=pdist(X)                  #d2=np.sqrt((x1-y1)
2
+(x2-y2)
2
+....)