더북(TheBook)

유클리드 거리가 상하좌우/대각선 어떤 방향이든지 이동이 가능했다면, 맨해튼 거리는 상하좌우로만 이동할 수 있습니다. 맨해튼 거리 측정은 수식 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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.