Следующий код делает именно то, что я хочу: вычислить все расстояния (a, b) для каждой пары a от A, b от B.
Есть ли более эффективный способ сделать это, используя цифровую трансляцию вместо тайлинга?
A = np.array([[1, 2], [3,4], [5,6], [7, 8]])
B = np.array([[4, 3], [2, 1]])
np.tile(A.reshape(len(A), 1, 2), (1, len(B), 1)) - B
Out:
array([[[-3, -1],
[-1, 1]],
[[-1, 1],
[ 1, 3]],
[[ 1, 3],
[ 3, 5]],
[[ 3, 5],
[ 5, 7]]])