← 문제 목록/쌍별 거리 행렬 (Pairwise Distances)

쌍별 거리 행렬 (Pairwise Distances)

NumPy 기초 · easy

preview

쌍별 거리 행렬

데이터셋 XX 의 모든 점과 YY 의 모든 점 사이 유클리드 거리를 한 번에 계산합니다. KNN, 군집화 등에서 핵심 연산이에요.

Dij=xiyj2=k(xikyjk)2D_{ij} = \|x_i - y_j\|_2 = \sqrt{\sum_k (x_{ik} - y_{jk})^2}

결과 shape: X(N, D), Y(M, D)D(N, M).

브로드캐스팅 팁

X[:, None, :]   # (N, 1, D)
Y[None, :, :]   # (1, M, D)
# 뺄셈 → (N, M, D)

이후 마지막 축으로 제곱합·루트를 취하면 (N, M).

과제

함수 pairwise(X, Y) 를 완성하세요.

  • for 루프 없이 브로드캐스팅으로 구현.
  • 반환: (N, M) NumPy 배열.

테스트 케이스

#이름설명
11점 vs 1점pairwise([[0,0]], [[3,4]])[[5]]
2shape 검증X (4,3), Y (5,3)(4,5)
3X=Y 대각선 0자기자신까지 거리는 0
4X=Y 대칭D[i,j] == D[j,i]
5루프 없이for/while 금지
Loading...

코드를 작성하고 Run 을 눌러보세요.