Python实现列表内多个同形状矩阵的逐元素均值计算
Python实现多矩阵对应位置元素均值计算
方法1:使用NumPy实现(推荐,适合大规模矩阵运算)
这是Python中处理矩阵类运算的最优方案,代码简洁且运行效率高,无论矩阵是一维还是多维,只要所有矩阵形状完全一致就可以直接使用:
import numpy as np # 示例输入列表a a = [ [1, 2, 3], [3, 4, 5], [6, 7, 8] ] # 沿第0维(即列表中每个矩阵的维度)计算均值 mean_matrix = np.mean(a, axis=0) print(mean_matrix) # 浮点数输出:[3.33333333 4.33333333 5.33333333] # 若需要保留分数格式,可配合fractions模块 from fractions import Fraction mean_matrix_frac = [Fraction(x, len(a)) for x in np.sum(a, axis=0)] print(mean_matrix_frac) # 分数输出:[Fraction(10, 3), Fraction(13, 3), Fraction(16, 3)]
参数说明:axis=0表示对输入数组的第0个维度做聚合计算,也就是把所有矩阵对应位置的元素放在一起计算均值。
方法2:纯Python实现(无需依赖第三方库)
如果不想安装NumPy,可以用Python内置函数实现,以下示例适配你给出的一维行矩阵场景,如果存储的是二维矩阵,只需将推导式嵌套一层即可:
from fractions import Fraction a = [ [1, 2, 3], [3, 4, 5], [6, 7, 8] ] n = len(a) # 用zip(*a)将所有矩阵对应位置的元素打包为元组,逐个计算均值 mean_matrix = [sum(col)/n for col in zip(*a)] print(mean_matrix) # 浮点数输出:[3.3333333333333335, 4.333333333333333, 5.333333333333333] # 保留分数格式 mean_matrix_frac = [Fraction(sum(col), n) for col in zip(*a)] print(mean_matrix_frac) # 分数输出:[Fraction(10, 3), Fraction(13, 3), Fraction(16, 3)]
内容的提问来源于stack exchange,提问作者morgomir silvercloack
相关产品推荐
相关产品推荐

