Khoảng cách Euclid giữa hai tập điểm

Trung bình

numpybroadcasting5 test · 12 giây · sai số 1e-5

Cho tập A gồm n điểm và tập B gồm m điểm trong không gian d chiều. Trả về ma trận D (n, m) với D[i, j] = ‖A[i] − B[j]‖₂.

  • Không dùng vòng lặp: dùng broadcasting A[:, None, :] - B[None, :, :], hoặc khai triển ‖a−b‖² = ‖a‖² + ‖b‖² − 2a·b (nhớ chặn giá trị âm nhỏ do sai số bằng np.maximum(…, 0)).

Viết hàm

pairwise_distances(A, B)

Tham số

  • A: ma trận (n, d)
  • B: ma trận (m, d)

Trả về

Ma trận (n, m).

Ví dụ

Tham số

A = [[0,0],[1,1]]
B = [[3,4]]

Kết quả

[[5.0],[3.605551275]]

Tham số

A = [[1,2,3]]
B = [[1,2,3],[0,0,0]]

Kết quả

[[0.0,3.741657387]]

Bài tiếp theo: Độ tương đồng cosine giữa các embedding →

Python · NumPy

Bấm “Chạy thử” để gọi pairwise_distances() với 2 ví dụ trong đề và so sánh kết quả. Dùng print() thoải mái để gỡ lỗi.