【问题标题】:Python: Compute the average of a big numbet of arrays without saving themPython:计算大量数组的平均值而不保存它们
【发布时间】:2017-02-27 19:40:11
【问题描述】:

我有大量列表,我想在不存储所有列表的情况下计算平均值。是否有任何 python 实现来做到这一点?

谢谢

【问题讨论】:

  • 是的。但是您必须向我们展示您的一些代码。
  • 你能提供更多关于你的情况的细节吗?不存储所有平均值或所有列表?列表不是已经在内存中了吗?
  • 尝试使用带有迭代器作为参数的 statistics.mean()。迭代器不存储数据,数据是按需调用的。
  • 我的意思是不存储列表,列表是即时计算的。我不必将它们全部保存在内存中
  • 只是做一个运行总和,然后计算,最后除法?

标签: python arrays numpy average


【解决方案1】:

如果你想平均整个数组(必须是兼容的形状):

running_sum = None
count = 0
for a in yourarraysource:
    if running_sum is None:
        running_sum = a
    else:
        running_sum = running_sum + a
    count += 1
average = running_sum / count

如果要平均所有元素:

running_sum = 0
count = 0
for a in yourarraysource:
    running_sum += a.sum()
    count += a.size
average = running_sum / count

【讨论】:

    猜你喜欢
    • 2014-01-23
    • 2018-02-10
    • 1970-01-01
    • 2021-07-17
    • 2018-11-05
    • 2013-10-25
    • 1970-01-01
    • 2014-05-14
    相关资源
    最近更新 更多