矩阵乘法是一个漫长的过程,其中矩阵的每一行和每一列中的每个元素都要以某种方式相乘和相加。对于矩阵乘法,第一个矩阵中的列数必须等于第二个矩阵中的行数。结果矩阵具有第一个矩阵的行数和第二个矩阵的列数。
对于较小的矩阵,我们可以设计嵌套的循环并找到结果。对于更大的矩阵,我们需要使用python中的一些内置功能来解决。我们将在下面看到这两种方法。
我们采用尺寸为2x3和3x2(行x列)的两个矩阵。矩阵乘法的结果是2x2矩阵。我们有一个嵌套的for循环,旨在遍历A的列和B的行,并在这些行和列中添加值的乘积。
#matrix A with 2 rows A = ([5,10,15],[20,25,30]) #matrix B with 2 columns B = ([4,8],[12,10],[14,16]) result = [[0 for x in range(2)] for y in range(2)] for i in range(len(A)): # iterate through columns of A for j in range(len(B[0])): # iterate through rows of B for k in range(len(B)): result[i][j] += A[i][k] * B[k][j] for r in result: print(r)
运行上面的代码将为我们提供以下结果:
[350, 380] [800, 890]
Numpy具有一个名为dot的内置函数,该函数执行矩阵乘法。我们的程序行数变得非常少,语法也非常简单。
import numpy as np #matrix A matrix_A = ([5,10,15],[20,25,30]) #matrix B matrix_B = ([4,8],[12,10],[14,16]) result = np.dot(matrix_A,matrix_B) # Result print(result)
运行上面的代码将为我们提供以下结果:
[[350 380] [800 890]]