假設你要從家裡走到學校,行徑的距離肯定不會是兩點間直線的距離,肯定是要經過各種路口轉彎直走才會到達學校,而經由這種方式實際行徑的距離就是曼哈頓距離
二維平面兩點 與 間的曼哈頓距離
兩個n維向量 與 間的曼哈頓距離
用Python實現曼哈頓距離
import numpy as np
def get_dist(a, b):
return sum(np.abs(a - b))
if __name__ == '__main__':
a = np.array([1, 2])
b = np.array([7, 2])
print(get_dist(a, b)) # 6
a = np.array([3, 4])
b = np.array([8, 1])
print(get_dist(a, b)) # 8
切比雪夫距離(是L♾範數)是向量空間中的一種度量,二個點之間的距離定義為其各座標數值差的最大值,以下列棋盤為例,從f6要走到相鄰的8格不管是斜走往左走望右走都需要一步剛好也等於f6與相鄰8格的謝比雪夫距離,所以謝比雪夫距離也稱為棋盤距離
取自維基百科
二維平面上的兩點 與 間的謝比雪夫距離:
兩個 n 維向量 與 間的謝比雪夫距離
用Python實現謝比雪夫距離
import numpy as np
def get_dist(a, b):
"""
a: A點
b: B點
"""
return np.max(np.abs(a - b))
if __name__ == '__main__':
a = np.array([1, 2])
b = np.array([7, 2])
print(get_dist(a, b)) # 6
a = np.array([3, 4])
b = np.array([8, 1])
print(get_dist(a, b)) # 5