python自定义函数实现的矩阵乘法

2022-03-11 00:00:00 自定义 矩阵 乘法

python自定义函数实现的矩阵乘法,代码定义了两种不同的实现方式,第一种为常规的数组循环,第二种使用了zip函数,只需一行代码即可。

"""
作者:皮蛋编程(https://www.pidancode.com)
创建日期:2022/3/23
功能描述:python自定义函数实现的矩阵乘法
"""

def matrixMul(A, B):
    res = [[0] * len(B[0]) for i in range(len(A))]
    for i in range(len(A)):
        for j in range(len(B[0])):
            for k in range(len(B)):
                res[i][j] += A[i][k] * B[k][j]
    return res

def matrixMul2(A, B):
    return [[sum(a * b for a, b in zip(a, b)) for b in zip(*B)] for a in A]

a = [[1, 2], [3, 4], [5, 6], [7, 8]]
b = [[1, 2, 3, 4], [5, 6, 7, 8]]
print(matrixMul(a, b))
print(matrixMul(b, a))
print("-" * 90)
print(matrixMul2(a, b))
print(matrixMul2(b, a))
print("-" * 90)

输出结果如下:

[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]
[[50, 60], [114, 140]]
------------------------------------------------------------------------------------------
[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]
[[50, 60], [114, 140]]
------------------------------------------------------------------------------------------

代码在python3.9环境下测试通过。

相关文章