2017-04-16 163 views
0

如果我有兩個列表平均值 - Python的

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

我如何才能找到各要素的平均值,從而使得到的名單將是:

[3,7,3,9.5] 
+2

你嘗試過什麼嗎? – ayhan

回答

3
>>> 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)。 –

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()可以有多個參數。

0

使用列表和循環的替代方法是使用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]