更新时间:2023-11-25 23:39:58
You can use np.einsum
like so -
np.einsum('ij,ikj->ik',a,b)
样品运行-
In [42]: M,N = 3,4
In [43]: a = np.random.rand(100,N)
In [44]: b = np.random.rand(100,M,N)
In [45]: np.einsum('ij,ikj->ik',a,b).shape
Out[45]: (100, 3)
您也可以使用np.matmul
或@
运算符(Python 3.x),尽管它似乎比einsum
-
You can also use np.matmul
or @
operator (Python 3.x) though it seems marginally slower than einsum
-
np.matmul(a[:,None],b.swapaxes(1,2))[:,0]