Numpy Diffusion pour effectuer la distance euclidienne vectorisé

J'ai matrices 2 x 4 et 3 x 4. Je veux trouver la distance euclidienne entre les lignes, et d'obtenir un 2 x 3 de la matrice à la fin. Voici le code avec une boucle qui calcule la distance euclidienne pour chaque vecteur ligne dans un contre tous b ligne de vecteurs. Comment puis-je faire la même chose sans l'aide de boucles for?

 import numpy as np
a = np.array([[1,1,1,1],[2,2,2,2]])
b = np.array([[1,2,3,4],[1,1,1,1],[1,2,1,9]])
dists = np.zeros((2, 3))
for i in range(2):
      dists[i] = np.sqrt(np.sum(np.square(a[i] - b), axis=1))

OriginalL'auteur user1835351 | 2015-01-14