矩阵的积是指两个矩阵相乘的结果,数学表达式为:

其中, 为原矩阵, 为结果矩阵。 其中, 可以注意到的是,矩阵的积只有在第一个矩阵的列数等于第二个矩阵的行数时才有意义。

标准代码如下

def matrixmul(a,b):
    if len(a[0]) != len(b):
        return -1
    
    vals = []
    for i in range(len(a)):
        hold = []
        for j in range(len(b[0])):
            val = 0
            for k in range(len(b)):
                val += a[i][k] * b[k][j]         
            hold.append(val)
        vals.append(hold)

    return vals

当然,也可以使用numpy库中的dot方法来简化计算

def matrixmul(a,b):
    import numpy as np
    if(len(a[0])!=len(b)):
        return -1
    return np.dot(a, b).tolist()