我正在寻找一种有效的方法来执行两个与时间相关的二维矩阵的矩阵乘法(点积),最终得到一个与时间相关的二维矩阵。
例如:
a = np.zeros([7200,13,4])
b = np.zeros([7200,4,7])
我想结束
c = np.zeros([7200,13,7])
我已经找到了np.tensordot,但这会产生一个4D矩阵而不是3D矩阵。其他numpy函数也没有让我获得所需的形状。所以我想知道是否有任何方法可以在不使用for循环的情况下执行此矩阵乘法?
致以最诚挚的问候,
Timothy Van Daele
答案 0 :(得分:1)
我刚刚挖了一点点,我找到了numpy函数einsum。这为进行向量乘法提供了很大的自由。
a = np.zeros([7200,13,4])
b = np.zeros([7200,4,7])
c = np.einsum('ijk,ikl->ijl',a,b)
c.shape (7200, 13, 7)