【问题标题】:Most efficient was to calculate mean of a large array?最有效的是计算一个大数组的平均值?
【发布时间】:2022-11-12 11:27:03
【问题描述】:

我有一些大的 .csv 实验数据文件。它们的大小在 30MB-3GB 范围内。我已经使用 pandas 成功阅读了它们,并对数据进行了一些其他计算。就目前而言,我有一个非常长的一维数组,我需要取其平均值。

默认情况下,我使用了 statistics.mean(array) 但这似乎需要很长时间才能运行。

通过测试我的代码的各个部分,我确定这是行 statistics.mean(array) 需要很长时间才能运行。

有没有比这更有效的方法来计算大型数据集的平均值?

谢谢!

def GetMean(ionVelocityArray):
    return stats.mean(ionVelocityArray)

我已经等待了 2 个小时,让这个函数在 30MB 文件上完成运行。

【问题讨论】:

    标签: python statistics mean


    【解决方案1】:

    它取决于数组的大小,您可以遍历它并在最后除以数组的大小:

    def GetMean(ionVelocityArray):
        total = 0
        for _ in ionVelocityArray:
           total += 1
    
        return total / len(ionVelocityArray)
    

    但是,如果它超过 20k 个元素,我将对数组进行排序,并使用四分位间距进行估计,并使用它来计算平均值,或者如果有重复值,那么当它被排序时,你可以存储在字典中,其中键是列表中的一个元素,值为 t6he 计数并将其用作平均值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-06
      • 2017-10-27
      • 1970-01-01
      • 2016-08-24
      • 2021-01-25
      • 2014-01-23
      • 1970-01-01
      • 2012-07-01
      相关资源
      最近更新 更多