Python:计算嵌套列表的平均值

11 投票
3 回答
9149 浏览
提问于 2025-04-15 18:35

我有一个列表

a = [[1,2,3],[4,5,6],[7,8,9]]

现在我想计算这些内部列表的平均值,这样

a = [(1+4+7)/3,(2+5+8)/3,(3+6+9)/3]

'a' 最后就不应该是一个嵌套列表。请给出一个通用的解决方案。

3 个回答

7

如果你已经安装了numpy这个库:

>>> import numpy as np
>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> arr = np.array(a)
>>> arr
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> np.mean(arr)
5.0
>>> np.mean(arr,axis=0)
array([ 4.,  5.,  6.])
>>> np.mean(arr,axis=1)
array([ 2.,  5.,  8.])
12
a = [sum(x)/len(x) for x in zip(*a)]
# a is now [4, 5, 6] for your example

在Python 2.x中,如果你不想要整数除法,可以把 sum(x)/len(x) 替换成 1.0*sum(x)/len(x)

关于zip的文档

6
>>> import itertools
>>> [sum(x)/len(x) for x in itertools.izip(*a)]
[4, 5, 6]

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答