유클리드 거리가 상하좌우/대각선 어떤 방향이든지 이동이 가능했다면, 맨해튼 거리는 상하좌우로만 이동할 수 있습니다. 맨해튼 거리 측정은 수식 10.19처럼 단순히 두 점의 세로축 차이와 가로축 차이를 더하면 됩니다.
수식 10.19
d(x, y) = |x1 - x2| + |y1 - y2|
맨해튼 거리 역시 파이썬으로 구할 수 있습니다. 파이썬의 math 함수에는 수학과 관련된 다양한 함수와 상수가 미리 정의되어 있습니다. 맨해튼 거리도 math 함수를 사용해서 구현해 보겠습니다.
In [54]:
# math 함수를 호출합니다 from math import* # 두 점 P1과 P2를 정의합니다 p1 = (1, 2, 3) p2 = (4, 5, 6) # 맨해튼 거리를 계산하는 사용자 정의 함수를 생성합니다 def manhattan_distance(x, y): return sum(abs(a-b) for a,b in zip(x,y)) # P1과 P2 사이의 맨해튼 거리를 계산합니다 manhattan_distance(p1,p2)
Out [54]:
9