python中的多维矩阵乘法
我有尺寸为python中的多维矩阵乘法,python,numpy,matrix-multiplication,Python,Numpy,Matrix Multiplication,我有尺寸为500x2000x30的矩阵A和尺寸为30x5的矩阵B 您可以认为有500个2000x30实例,因为矩阵A是维度500x2000x30 我想将A中的1x2000x30与矩阵B相乘,以获得大小为1x2000x5的新矩阵 i、 e.A X B应该给我一个维度矩阵500x2000x5 显然,通过矩阵A循环500次是一种解决方案,但有没有有效的方法来实现这一点 编辑:A和B都是numpy数组如果您有numpy数组,则可以使用此函数: np.dot(A, B) 它将完全执行您想要的操作,即将A
500x2000x30
的矩阵A和尺寸为30x5
的矩阵B
您可以认为有500个2000x30
实例,因为矩阵A是维度500x2000x30
我想将A中的1x2000x30
与矩阵B相乘,以获得大小为1x2000x5
的新矩阵
i、 e.A X B
应该给我一个维度矩阵500x2000x5
显然,通过矩阵A循环500次是一种解决方案,但有没有有效的方法来实现这一点
编辑:A和B都是numpy数组如果您有
numpy
数组,则可以使用此函数:
np.dot(A, B)
它将完全执行您想要的操作,即将A
的最后一个轴与B
的第一个轴“收缩”:
对于二维数组,它等价于矩阵乘法,对于一维数组,它等价于向量的内积(无复共轭)。对于N维,它是a的最后一个轴和b的倒数第二个轴的和积:
dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
如果您有
numpy
阵列,则可以使用此功能:
np.dot(A, B)
它将完全执行您想要的操作,即将A
的最后一个轴与B
的第一个轴“收缩”:
对于二维数组,它等价于矩阵乘法,对于一维数组,它等价于向量的内积(无复共轭)。对于N维,它是a的最后一个轴和b的倒数第二个轴的和积:
dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
这在很大程度上取决于数据的表示方式。如果您有numpy数组,这应该是
numpy.dot
的一个相当简单的应用程序。这在很大程度上取决于数据的表示方式。如果您有numpy数组,那么这应该是python3.5+上的numpy.dot
或a@b
或python3.5上的a@b
的一个相当简单的应用程序+