Подход № 1: Самый прямой с np.linalg.norm
, использующим его axis
параметр и также использующим broadcasting
, будет -
np.linalg.norm(A-B,axis=1)
Подход# 2: С einsum
-
subs = A - B
out = np.sqrt(np.einsum('ij,ij->i',subs,subs))
Подход № 3: Использование формулы (a-b)^2 = a^2 + b^2 - 2ab
для использования matrix-multiplication
с np.dot
и np.inner
-
np.sqrt(np.einsum('ij,ij->i',A, A) + np.inner(B,B) - 2*A.dot(B))