在Python中使用Numpy在单行中对两个矩阵进行乘法

在Python中使用Numpy在单行中对两个矩阵进行乘法

矩阵乘法是一种以两个矩阵为输入的操作,通过将第一个矩阵的行与第二个矩阵的列相乘产生一个矩阵。在矩阵乘法中,确保第一个矩阵的columns应该等于第二个矩阵的行数

示例:两个大小为3×3的矩阵相乘。

Input:matrix1 = ([1, 2, 3],
                 [3, 4, 5],
                 [7, 6, 4])
      matrix2 = ([5, 2, 6],
                 [5, 6, 7],
                 [7, 6, 4])

Output : [[36 32 32]
          [70 60 66]
          [93 74 100]]

python中两个矩阵相乘的方法

1. 使用显式for循环:这是矩阵相乘的一种简单技术,但对于较大的输入数据集来说是一种昂贵的方法。在这里,我们使用嵌套for循环遍历每一行和每一列。

如果矩阵1是n x m矩阵和矩阵x2是m x l 矩阵.

实现:

# input two matrices of size n x m
matrix1 = [[12,7,3],
        [4 ,5,6],
        [7 ,8,9]]
matrix2 = [[5,8,1],
        [6,7,3],
        [4,5,9]]
 
res = [[0 for x in range(3)] for y in range(3)]
 
# explicit for loops
for i in range(len(matrix1)):
    for j in range(len(matrix2[0])):
        for k in range(len(matrix2)):
 
            # resulted matrix
            res[i][j] += matrix1[i][k] * matrix2[k][j]
 
print (res)

输出

[[114, 160, 60], [74, 97, 73], [119, 157, 112]]

在这个程序中,我们使用嵌套的for循环来计算结果,它将遍历矩阵的每一行和每一列,最后在结果中积累乘积的和。

2. 使用Numpy:使用Numpy的乘法也称为向量化,其主要目的是减少或消除程序中for循环的显式使用,从而加快计算速度。
Numpy是python包中的一个构建版本,用于数组处理和操作。对于较大的矩阵运算,我们使用numpypython包,它比迭代的one方法快1000倍。
有关Numpy的详细信息,请访问链接

实现:

# We need install numpy in order to import it
import numpy as np
 
# input two matrices
mat1 = ([1, 6, 5],[3 ,4, 8],[2, 12, 3])
mat2 = ([3, 4, 6],[5, 6, 7],[6,56, 7])
 
# This will return dot product
res = np.dot(mat1,mat2)
 
 
# print resulted matrix
print(res)

输出:

[[ 63 320  83]
 [ 77 484 102]
 [ 84 248 117]]

使用 numpy

# same result will be obtained when we use @ operator
# as shown below(only in python >3.5)
import numpy as np
 
# input two matrices
mat1 = ([1, 6, 5],[3 ,4, 8],[2, 12, 3])
mat2 = ([3, 4, 6],[5, 6, 7],[6,56, 7])
 
# This will return matrix product of two array
res = mat1 @ mat2
 
# print resulted matrix
print(res)

输出:

[[ 63 320  83]
 [ 77 484 102]
 [ 84 248 117]]

在上面的例子中,我们使用了点积,在数学中,点积是一种代数运算,取两个大小相等的向量并返回一个数字。计算结果的方法是将相应的项相乘,然后将这些乘积相加。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程