我有尺寸为500x2000x30
的矩阵A和尺寸为30x5
的矩阵B.Python中的多维矩阵乘法
您可以认为2000x30
有500个实例,因为矩阵A的维数为500x2000x30
。
我想从A乘以1x2000x30
中的每一个与矩阵B,以获得尺寸为1x2000x5
的新矩阵。
即A X B
应该给我维500x2000x5
的矩阵通过矩阵A显然循环500次是一个解决方案,但有一个有效的方式来实现这一目标?
编辑:A和B两者都是numpy的阵列
我有尺寸为500x2000x30
的矩阵A和尺寸为30x5
的矩阵B.Python中的多维矩阵乘法
您可以认为2000x30
有500个实例,因为矩阵A的维数为500x2000x30
。
我想从A乘以1x2000x30
中的每一个与矩阵B,以获得尺寸为1x2000x5
的新矩阵。
即A X B
应该给我维500x2000x5
的矩阵通过矩阵A显然循环500次是一个解决方案,但有一个有效的方式来实现这一目标?
编辑:A和B两者都是numpy的阵列
如果你有numpy
阵列可以使用np.dot
功能如下:
np.dot(A, B)
它会做的正是你想要的东西,即“合同”的A
与B
第一轴的最后轴:
对于2 d阵列它相当于矩阵乘法,以及用于1-d ARR ays到载体的内部产物(没有复杂的偶联)。对于N维它是一个和积上的最后一个轴和第二个到最后B的:
dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
或'a @ b' –
即高度取决于数据是如何表示的。如果你有numpy数组,这应该是一个相当简单的'numpy.dot'应用程序。 python 3.5 +上的 – filmor