平均值 - Python的

问题描述:

如果我有两个列表平均值 - Python的

a = [2,5,1,9] 
b = [4,9,5,10] 

我如何才能找到各要素的平均值,从而使得到的名单将是:

[3,7,3,9.5] 
+2

你尝试过什么吗? – ayhan

>>> a = [2,5,1,9] 
>>> b = [4,9,5,10] 
>>> [(g + h)/2 for g, h in zip(a, b)] 
[3.0, 7.0, 3.0, 9.5] 
+0

真的很好,我会尽我所能接受答案 – ryansin

+1

在Python 2中,除法被截断(整数除法),解决此问题的一种方法是除以浮点数(此处为2.0)。 –

你想要的是两个数组的平均值(或数学中的向量)。

因为Python 3.4,有一个statistics模块,其提供了一种mean()功能:

statistics.mean(数据)的数据,的序列或迭代的

返回样本算术平均值实数值。

您可以使用它像这样:

import statistics 

a = [2, 5, 1, 9] 
b = [4, 9, 5, 10] 

result = [statistics.mean(k) for k in zip(a, b)] 
# -> [3.0, 7.0, 3.0, 9.5] 

通知:这个解决方案可以使用超过两个阵列,因为zip()可以有多个参数。

使用列表和循环的替代方法是使用numpy数组。

import numpy as np 
# an array can perform element wise calculations unlike lists. 
a, b = np.array([2,5,1,9]), np.array([4,9,5,10]) 
mean = (a + b)/2; print(mean) 
>>>[ 3. 7. 3. 9.5]