Python으로 맨해튼 거리를 계산하는 방법(예제 포함)


두 벡터 AB 사이의 맨해튼 거리는 다음과 같이 계산됩니다.

Σ|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 거리를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다