Python으로 맨해튼 거리를 계산하는 방법(예제 포함)
두 벡터 A 와 B 사이의 맨해튼 거리는 다음과 같이 계산됩니다.
Σ|A i – B i |
여기서 i 는 각 벡터의 i 번째 요소입니다.
이 거리는 두 벡터 간의 차이점을 측정하는 데 사용되며 많은 기계 학습 알고리즘 에서 일반적으로 사용됩니다.
이 튜토리얼에서는 Python에서 두 벡터 사이의 맨해튼 거리를 계산하는 두 가지 방법을 보여줍니다.
방법 1: 사용자 정의 함수 작성
다음 코드는 Python에서 두 벡터 사이의 맨해튼 거리를 계산하는 사용자 정의 함수를 만드는 방법을 보여줍니다.
from math import sqrt #create function to calculate Manhattan distance def manhattan(a, b): return sum ( abs (val1-val2) for val1, val2 in zip (a,b)) #definevectors A = [2, 4, 4, 6] B = [5, 5, 7, 8] #calculate Manhattan distance between vectors manhattan(A,B) 9
이 두 벡터 사이의 맨해튼 거리는 9 입니다.
맨해튼까지의 거리를 손으로 빠르게 계산하여 이것이 올바른지 확인할 수 있습니다.
Σ|A i – B i | = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9 .
방법 2: cityblock() 함수 사용
두 벡터 사이의 맨해튼 거리를 계산하는 또 다른 방법은 SciPy 패키지의 cityblock() 함수를 사용하는 것입니다.
from scipy. spatial . distance import cityblock #definevectors A = [2, 4, 4, 6] B = [5, 5, 7, 8] #calculate Manhattan distance between vectors cityblock(A, B) 9
다시 한번, 이 두 벡터 사이의 맨해튼 거리는 9 입니다.
이 함수를 사용하여 Pandas DataFrame의 두 열 사이의 맨해튼 거리를 찾을 수도 있습니다.
from scipy. spatial . distance import cityblock import pandas as pd #define DataFrame df = pd. DataFrame ({' A ': [2, 4, 4, 6], ' B ': [5, 5, 7, 8], ' C ': [9, 12, 12, 13]}) #calculate Manhattan distance between columns A and B cityblock(df. A , df. B ) 9
추가 리소스
Python에서 유클리드 거리를 계산하는 방법
Python에서 해밍 거리를 계산하는 방법
Python에서 Levenshtein 거리를 계산하는 방법
Python에서 Mahalanobis 거리를 계산하는 방법