You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效计算Python中多个列表的均值?

高效计算多个列表均值的方法

你当前手动逐个将20个列表代入mean函数计算均值的方式效率低下,且现有代码仅将第一个列表赋值给samples,其余列表未被正确组织到容器中。以下是几种高效实现方案:

第一步:整理数据结构

先把所有20个列表统一放入一个大列表,才能实现批量处理:

def mean(data):
    return sum(data)/len(data)

# 将所有20个列表整合进samples
samples = [
    [153.43, 161.45, 166.74, 167.28, 185.09],
    [161.44, 175.4, 166.38, 174.19, 167.24],
    [177.46, 176.65, 165.96, 171.52, 153.38],
    [183.94, 189.5, 174.21, 176.17, 187.07],
    [183.34, 165.49, 172.63, 158.5, 164.52],
    [179.93, 172.61, 156.15, 165.89, 158.5],
    [164.91, 174.71, 178.26, 176.74, 188.23],
    [188.7, 181.8, 174.1, 167.18, 166.6],
    [168.44, 162.14, 174.66, 173.89, 177.69],
    [183.84, 161.34, 165.76, 173.74, 173.39],
    [156.99, 173.59, 174.17, 177.2, 164.2],
    [166.34, 179.78, 160.13, 166.54, 169.55],
    [164.3, 172.07, 167.35, 184.02, 174.3],
    [161.53, 161.77, 171.62, 165.17, 190.27],
    [173.94, 170.21, 173.68, 172.77, 166.62],
    [165.76, 156.93, 160.18, 166.27, 169.14],
    [183.99, 174.7, 159.05, 161.27, 164.46],
    [155.29, 161.3, 164.67, 174.18, 171.12],
    [180.6, 177.58, 168.16, 173.81, 161.27],
    [191.13, 170.21, 166.62, 173.56, 171.56]
]

方案一:列表推导式(简洁高效)

遍历大列表中的每个子列表,批量计算均值:

# 使用自定义mean函数
means = [mean(sample) for sample in samples]

# 或直接内嵌sum/len,省去函数调用开销
means = [sum(sample)/len(sample) for sample in samples]

方案二:map函数(函数式风格)

将mean函数映射到samples的每个元素,返回迭代器后转为列表:

means = list(map(mean, samples))

方案三:numpy(大数据量下最优)

如果列表数量或元素规模较大,numpy的向量化运算效率远高于纯Python循环:

import numpy as np

# 转换为numpy数组
samples_np = np.array(samples)
# 按行计算均值(axis=1表示每行)
means_np = samples_np.mean(axis=1)
# 如需转为Python列表
means = means_np.tolist()

效果说明

以上方法均可一次性算出所有列表的均值,无需手动逐个代入:

  • 列表推导式和map函数适合常规规模数据,代码简洁易读;
  • numpy适合大规模数据集,依托底层优化实现更高效率。

内容的提问来源于stack exchange,提问作者tee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:05:29