NumPy 기초·연습 문제

해밍 거리 행렬 (정규화)

문제 설명PROBLEM

preview

해밍 거리 행렬 (정규화)

43번 체비쇼프연속 값 에 대한 거리였다면, 해밍 거리범주형·이진 특성에 쓰입니다. 두 벡터가 다른 위치의 비율:

Dij=1Dk=1D1[xikyjk]D_{ij} = \frac{1}{D} \sum_{k=1}^{D} \mathbb{1}[x_{ik} \neq y_{jk}]

범위 [0,1][0, 1]. 사용처:

  • DNA 서열 비교 (A/C/G/T 4-진)
  • 정수 레이블 벡터 (원-핫 이전)
  • 해시 지문 비교 (LSH)

과제

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

  • X shape (N, D), Y shape (M, D) — 정수 또는 범주형.
  • 반환: (N, M) float 행렬, [0, 1].
  • 루프 없이 브로드캐스팅.

테스트 케이스

#이름검증
1동일 행 → 0X==Y 이면 대각선 0
2모두 다름 → 1모든 위치 다른 쌍
3shape(N, M)
4대칭X==Y 일 때 D == D.T
5알려진 값수동 계산 일치
개념 노트와 실수 포인트

NumPy 기초

  • ⚠️ axis 헷갈림: axis=0 은 행을 가로질러 → 열별 결과, axis=1행별 결과.
  • 브로드캐스팅: shape 를 뒤에서부터 맞춤(1 또는 같은 크기).
  • 반복문 대신 벡터화 연산. @(행렬곱) 와 *(요소곱) 구분.