如何在Python中将两个矩阵相乘

时间:2016-05-14 22:07:45

标签: python matrix

全新的Python,我试图仅使用Python将矩阵相乘。为了简单起见,我们会说它们总是大小相同。我尝试了很多不同的方法,但还没弄明白。以下是两个矩阵:

matrix_a = [[1,2,3],[1,2,3],[1,2,3]] matrix_b = [[3,2,1],[3,2,1],[3,2,1]]

提前致谢

2 个答案:

答案 0 :(得分:5)

我建议numpy执行此任务,但这里应该有效:

def multi(x,y):
    d = []
    i = 0
    while i < len(x):
        j = 0
        e = []
        while j < len(y[0]):
            k = 0
            r = 0
            while k < len(x[0]):
                r += x[i][k] * y[k][j]
                k += 1
            j += 1
            e.append(r)
        d.append(e)
        i += 1
    print(d)

答案 1 :(得分:1)

如果您不想使用NumPy,也许您会发现此代码有用:

def matprod(x, y):
    I = range(len(x))
    J = range(len(y[0]))
    K = range(len(x[0]))
    return [[sum([x[i][k]*y[k][j] for k in K]) for j in J] for i in I]

虽然接近用于定义matrix multiplication的数学符号,但上面的代码不太可读。为了提高可读性,您可以使用this answer中提出的方法。