特定维度上的 Numpy 点积

Numpy dot product on specific dimension

我有一个形状为 (x, y) 的 numpy 数组 a 和另一个形状为 (x, z)

的数组 b

我正在尝试获取 ab 的每一行(维度 x)之间的点积。期望的结果:x 形状矩阵的数量 (x, y) 或形状矩阵 (x, y, z).

只需使用 einsum -

import numpy as np

a = np.random.rand(10, 20)
b = np.random.rand(10, 30)

c = np.einsum('ij,ik->ijk', a, b)

print(c.shape)