Zan*_*nam 2 python numpy matrix-multiplication
我有维度为 的矩阵 A500x2000x30和维度为 的矩阵 B 30x5。
您可以认为有 500 个实例,因为2000x30矩阵 A 的维度为500x2000x30。
我想将1x2000x30A 中的每个与矩阵 B 相乘以获得大小为 的新矩阵1x2000x5。
即A X B应该给我一个维度矩阵500x2000x5
显然,通过矩阵 A 循环 500 次是一个解决方案,但是有没有有效的方法来实现这一点?
编辑:A和B都是numpy数组
如果你有numpy数组,你可以使用np.dot这个函数:
np.dot(A, B)
Run Code Online (Sandbox Code Playgroud)
它将完全按照您想要的方式进行操作,即“收缩” 的最后一个轴A与第一个轴B:
对于二维数组,它相当于矩阵乘法,对于一维数组,它相当于向量的内积(没有复杂的共轭)。对于 N 维,它是 a 的最后一个轴与 b 的倒数第二个轴的和积:
Run Code Online (Sandbox Code Playgroud)dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
| 归档时间: |
|
| 查看次数: |
7611 次 |
| 最近记录: |