平均值 - Python的
答
>>> 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]
你尝试过什么吗? – ayhan