Python 3 中的矩阵乘法

Matrix Multiplication in Python 3

我正在尝试为线性代数创建几个函数,但完全陷入了矩阵乘法。以下是我的工作解决方案,但是否有更清洁的解决方案?

def matrix_multiplication(a, b):
     # Transpose matrix b
     bT = list(zip(*b))

     # Multiply the two
     return [[sum([a[ai][j] * bT[bTi][j] for j in range(len(a[ai]))]) for bTi in range(len(bT))] for ai in range(len(a))]

如果您尝试想出自己的计算矩阵的方法,可能是您的循环有效,但更标准的“更清洁”方法是使用“numpy”模块。

import numpy as np
A = np.array([[1,2,3],[2,3,4],[3,4,5]])
b = np.array([[1,-1,1]])
#Transposing
b = np.transpose(b)
c = np.matmult(A,b)

首先,如果您想将其用于学习目的,我只建议您从头开始创建一个线性代数库。否则你应该使用 numpy.linalg 或类似的东西。

假设您想从头开始,我建议您使用面向对象的编程方法。这意味着创建您自己的矩阵 class.

您可以尝试类似于此博客的内容:https://towardsdatascience.com/how-to-build-a-matrix-module-from-scratch-a4f35ec28b56