Чистый numpy
Вы можете сделать это в numpy:
>>> np.sum(np.abs(A-B), axis=1)
array([10, 6, 9, 9, 7, 7, 9, 8, 14, 8])
Сравните это с выводом вашего цикла:
Distances: 10
Distances: 6
Distances: 9
Distances: 9
Distances: 7
Distances: 7
Distances: 9
Distances: 8
Distances: 14
Distances: 8
Альтернатива: scipy
Вы также можете использовать scipy
, если хотите (лично я предпочитаю метод numpy
):
from scipy.spatial.distance import cdist
>>> cdist(A,np.array(B).reshape(1,-1), metric='cityblock')
array([[10.],
[ 6.],
[ 9.],
[ 9.],
[ 7.],
[ 7.],
[ 9.],
[ 8.],
[14.],
[ 8.]])