Python实现二维列表矩阵减法及结果元素求和的最优方法
Python实现矩阵减法并求和的最优方案
分两种场景选择最优实现方式:
1. 无第三方依赖场景(纯Python实现)
如果矩阵规模小、不想额外安装依赖库,优先用生成器表达式直接边减边求和,不需要存储完整的中间减法矩阵,内存开销最低:
a = [ [2, 3, 4], [1, 5, 2] ] b = [ [1, 4, 2], [0, 1, 3] ] # 直接计算差值总和,无额外中间存储 total = sum(a[i][j] - b[i][j] for i in range(len(a)) for j in range(len(a[0]))) print(total) # 输出6
如果需要保留减法后的矩阵结果,可分开实现:
# 先计算矩阵减法结果 diff = [[a[i][j] - b[i][j] for j in range(len(a[0]))] for i in range(len(a))] # 再对所有元素求和 total = sum(num for row in diff for num in row) print(diff) # 输出[[1, -1, 2], [1, 4, -1]] print(total) # 输出6
2. 大规模数值计算场景(numpy实现)
如果处理的矩阵规模大,优先用numpy实现,底层为C语言优化的运算逻辑,执行效率远高于纯Python,语法也更简洁:
import numpy as np a = np.array([ [2, 3, 4], [1, 5, 2] ]) b = np.array([ [1, 4, 2], [0, 1, 3] ]) # 矩阵减法 diff = a - b # 所有元素求和 total = diff.sum() print(diff) # 输出: # [[ 1 -1 2] # [ 1 4 -1]] print(total) # 输出6
内容的提问来源于stack exchange,提问作者Carlos Andrés del Valle
相关产品推荐
相关产品推荐

