我有一个 list list :
就像是:

data = [[240, 240, 239],
        [250, 249, 237],
        [242, 239, 237],
        [240, 234, 233]]

我想将其平均
[average_column_1, average_column_2, average_column_3]

我的代码好像不太优雅。
这是遍历列表的幼稚方法,将总和保存在单独的容器中,然后除以元素数量。

我认为有一种Python方式可以做到这一点。
有什么建议?
谢谢

最佳答案

纯Python:

from __future__ import division
def mean(a):
    return sum(a) / len(a)
a = [[240, 240, 239],
     [250, 249, 237],
     [242, 239, 237],
     [240, 234, 233]]
print map(mean, zip(*a))

打印
[243.0, 240.5, 236.5]

NumPy:
a = numpy.array([[240, 240, 239],
                 [250, 249, 237],
                 [242, 239, 237],
                 [240, 234, 233]])
print numpy.mean(a, axis=0)

Python 3:
from statistics import mean
a = [[240, 240, 239],
     [250, 249, 237],
     [242, 239, 237],
     [240, 234, 233]]
print(*map(mean, zip(*a)))

关于python - python逐列平均列表列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10919664/

10-12 18:22