Python 3中的矩阵乘法

2024-10-03 00:29:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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))]

Tags: 函数inforlendefrange矩阵解决方案
2条回答

如果您试图提出自己的计算矩阵的方法,可能是您的循环可以工作,但更标准的“更干净”的方法是使用“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或类似的东西

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

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

相关问题 更多 >