Minkowski 距離在 Python 中


閔可夫斯基距離是一種度量,在規範向量空間中,結果為閔可夫斯基不等式。閔可夫斯基距離用於向量的距離相似性。

scipy.spatial.distance.minkowski

>>> from scipy.spatial import distance
>>> distance.minkowski([1, 0, 0], [0, 1, 0], 1)
2.0
>>> distance.minkowski([1, 0, 0], [0, 1, 0], 2)
1.4142135623730951
>>> distance.minkowski([1, 0, 0], [0, 1, 0], 3)
1.2599210498948732
>>> distance.minkowski([1, 1, 0], [0, 1, 0], 1)
1.0
>>> distance.minkowski([1, 1, 0], [0, 1, 0], 2)
1.0
>>> distance.minkowski([1, 1, 0], [0, 1, 0], 3)
1.0

示例程式碼

from math import *
from decimal import Decimal
def my_p_root(value, root):
   my_root_value = 1 / float(root)
   return round (Decimal(value) **
   Decimal(my_root_value), 3)
def my_minkowski_distance(x, y, p_value):
   return (my_p_root(sum(pow(abs(a-b), p_value)
      for a, b in zip(x, y)), p_value))
# Driver Code
vector1 = [0, 2, 3, 4]
vector2 = [2, 4, 3, 7]
my_position = 5
print("The Distance is::",my_minkowski_distance(vector1, vector2, my_position))

輸出

The Distance is:: 3.144

更新於: 2019 年 7 月 30 日

1K+ 瀏覽量

開啟您的職業生涯

完成課程後取得認證

開始
廣告