全新的Python,我试图仅使用Python将矩阵相乘。为了简单起见,我们会说它们总是大小相同。我尝试了很多不同的方法,但还没弄明白。以下是两个矩阵:
matrix_a = [[1,2,3],[1,2,3],[1,2,3]] matrix_b = [[3,2,1],[3,2,1],[3,2,1]]
提前致谢
答案 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中提出的方法。