Python 3中Matrix Multiplication(矩阵乘法)更精简实现方案咨询
纯Python矩阵乘法优化方案
你现有的实现逻辑正确,核心思路(转置右矩阵后按元素乘加)也非常合理,以下是更简洁优雅的优化版本:
def matrix_multiplication(a, b): b_transpose = list(zip(*b)) return [[sum(x * y for x, y in zip(row_a, col_b)) for col_b in b_transpose] for row_a in a]
优化点说明
- 移除了所有冗余的索引遍历逻辑,直接迭代矩阵的行、转置后的列,代码可读性大幅提升,不需要额外理解
ai/bTi这类索引变量的含义 - 将
sum内部的列表推导替换为生成器表达式,不需要生成临时列表存储乘积结果,内存占用更低 - 保留了原实现的核心逻辑,运行效率和原版本一致,没有性能损耗
如果你的开发场景允许引入第三方依赖,处理大规模矩阵时直接用NumPy的实现效率最高,写法也最简单:
import numpy as np def matrix_multiplication(a, b): return (np.array(a) @ np.array(b)).tolist()
NumPy的矩阵乘法底层为C实现,处理大矩阵时速度是纯Python实现的几十到上千倍。
内容的提问来源于stack exchange,提问作者crlav
相关产品推荐
相关产品推荐

