【问题标题】:Calculate average of a list of list of list of numbers [duplicate]计算数字列表列表的平均值[重复]
【发布时间】:2021-03-18 08:13:35
【问题描述】:

我有一个清单:

AllProcessTimes = [ [[1,2,3], [1,2,3], [1,2,3]],
                    [[1,2,3], [1,2,3], [1,2,3]],
                    [[1,2,3], [1,2,3], [1,2,3]],
                    [[1,2,3], [1,2,3], [1,2,3]],
                    [[2,4,6], [3,6,9], [4,8,12]] ]

我想计算每列的平均值,以便此示例的最终结果为:

AverageProcessTimes = [ [1.2, 2.4, 3.6], [1.4, 2.8, 4.2], [1.6, 3.2, 4.8] ]

如何在不创建大量占位符列表的情况下做到这一点?

【问题讨论】:

  • 虽然重复提到的是 2d 数组,但它同样适用于 3d 数组

标签: python arrays list


【解决方案1】:

使用 numpy 的 mean 方法。 Numpy 是一个非常高效和速度优化的库。

import numpy as np

AllProcessTimes = np.array([ [[1,2,3], [1,2,3], [1,2,3]],
                    [[1,2,3], [1,2,3], [1,2,3]],
                    [[1,2,3], [1,2,3], [1,2,3]],
                    [[1,2,3], [1,2,3], [1,2,3]],
                    [[2,4,6], [3,6,9], [4,8,12]] ])

AverageProcessTimes = np.mean(AllProcessTimes, axis=0)

【讨论】:

    【解决方案2】:

    试试这个,但稍作修改以供您使用。

    from statistics import mean 
     
    inp_lst = [12, 45, 78, 36, 45, 237.11, -1, 88] 
    list_avg = mean(inp_lst) 
     
    print("Average value of the list:\n") 
    print(list_avg) 
    print("Average value of the list with precision upto 3 decimal value:\n")
    print(round(list_avg,3))
    

    【讨论】:

    • 我想避免将每个基础列表的所有第 1、第 2 和第 3 个值放入另一个列表中,并尽可能计算平均值。您推荐的方法需要我这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2012-06-03
    • 2021-06-03
    • 2015-11-02
    • 1970-01-01
    • 2021-12-11
    相关资源
    最近更新 更多