NumPy如何实现矩阵乘法

  介绍

这篇文章主要介绍NumPy如何实现矩阵乘法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

NumPy支持的几类矩阵乘法也很重要。

元素级乘法

你已看过了一些元素级乘法。你可以使用乘法函数或*运算符来实现。回顾一下,它看起来是这样的:

m =, np.array ([[1, 2, 3], [4、5、6]])   米   #,显示以下结果:   #,阵列([[1,2,3]。   (4 #,,,,5日,6]])      时间=n  m  0.25 *,   n   #,显示以下结果:   #,阵列([[,,0.25,0.5,,0.75],   #,,(,1只,1.25,,1.5,]])      m  *, n   #,显示以下结果:   #,阵列([[1只,0.25,,2.25],   #,,(,4只,6.25,9只]])      np.multiply (m, n), #,相当于,m  *, n   #,显示以下结果:   #,阵列([[1只,0.25,,2.25],   #,,(,4只,6.25,9只]])

矩阵乘积

要获得矩阵乘积,你可以使用NumPy的matmul函数。

如果你有兼容的形状,那就像这样简单:

a =, np.array ([[1、2、3、4], [5、6、7、8]])   一个   #,显示以下结果:   #,阵列([[1,,2,,3,,4],   #,,(5,6,7,8]])   a.shape   #,显示以下结果:   #,(2,4)      时间=b  np.array ([[1, 2, 3], [4、5、6], [7 8 9], [10 11 12]])   b   #,显示以下结果:   #,阵列([[,1,2,3]。   #,,(,4,5,6),   #,,[,7,8,9),   (#,,10,11,12]])   b.shape   #,显示以下结果:   #,(4),3)      时间=c  np.matmul (a, b)   c   #,显示以下结果:   #,阵列([[,70,80,90]。   #,,(158,,184,,210]])   c.shape   #,显示以下结果:   #,(2,3)

如果你的矩阵具有不兼容的形状,则会出现以下错误:

np.matmul (b, a)   #,显示以下错误:   #,ValueError: shapes (4,3),以及(2、4),not 一致:,3,(dim  1), !=, 2, (dim  0)

NumPy的点函数

有时候,在你以为要用matmul函数的地方,你可能会看到NumPy的点函数。事实证明,如果矩阵是二维的,那么点和matmul函数的结果是相同的。

所以这两个结果是等价的:

a =, np.array ([[1、2], [3,4]])   一个   #,显示以下结果:   #,数组([[1,2],   #,,[3,4]])      np.dot(一个)   #,显示以下结果:   #,阵列([[7,大敌;10],   (15 #,,,,22]])      a.dot (a), #,你还要叫你可以直接对,“ndarray”,调用,“点”,   #,显示以下结果:   #,阵列([[7,大敌;10],   (15 #,,,,22]])      np.matmul(一个)   #,阵列([[7,大敌;10],   (15 #,,,,22]])

虽然这两个函数对于二维数据返回相同的结果,但在用于其他数据形状时,你应该谨慎选择。你可以在matmul和点文档中详细了解它们的差异,并找到其他NumPy函数的链接。

NumPy如何实现矩阵乘法