且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python:将向量列表与矩阵列表相乘作为单个矩阵运算

更新时间: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]