Python中scalar标量与matrix矩阵相乘的实现方法
Python实现标量与矩阵所有元素相乘的方案
已知变量定义如下:
scalar = 3 A = [[1,0,0],[0,1,0],[0,0,1]] D = []
下面提供两种常用实现方式:
方法1:纯Python原生实现(无第三方依赖)
用嵌套列表推导式即可快速完成运算,代码简洁直观:
D = [[element * scalar for element in row] for row in A]
如果偏好显式循环的写法,也可以用如下版本:
D = [] for row in A: temp_row = [] for num in row: temp_row.append(num * scalar) D.append(temp_row)
两种写法运行后,D的输出结果均为 [[3, 0, 0], [0, 3, 0], [0, 0, 3]],符合标量与矩阵相乘的运算规则。
方法2:基于numpy实现(适合大规模矩阵运算场景)
如果项目已经引入numpy库,可以直接利用其广播特性完成运算,性能更优:
import numpy as np # 先转为numpy数组运算,再转回嵌套列表赋值给D D = (np.array(A) * scalar).tolist()
运行结果和原生实现完全一致。
内容的提问来源于stack exchange,提问作者Colby Gonzalez
相关产品推荐
相关产品推荐

