2012-04-01 79 views
2

我需要計算每個列表中第一個元素的含義,每個列表中的第二個元素等,並獲得這些方法的列表。所以我需要得到一個列表d = [5/3,10/3,...等從以下如何計算不同列表中的值的均值

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

可以以某種方式與NumPy做到這一點?

+0

你是什麼意思每個列表中的第一個元素,你是指每個列表的意思?你可以試着重新回答你的問題嗎? – George 2012-04-01 23:11:12

回答

2

因爲這個問題有一個numpy的標籤,我想我會添加一個numpy的答案太:由平均

numpy.mean([a, b, c], axis=0) 
2

只是zip他們在一起。

>>> list(zip((1, 2, 3), (1,2,3), (1,2,3))) 
[(1, 1, 1), (2, 2, 2), (3, 3, 3)] 

從那裏,你可以迭代結果,並採取手段,因爲你需要它們。

+0

爲什麼不能在理解的同時計算出平均值,或者通過在列表上平均函數來計算平均值? – 2012-04-02 00:36:31

+0

@KarlKnechtel,我沒有試圖提供一個完整的解決方案,只是讓他們解決他們的問題。我不知道是否需要隨機訪問(列表理解),或者如果一次性順序訪問(某種類型的生成器)就足夠了,所以我不能說更多。 – aaronasterling 2012-04-02 01:03:13

2

你可以不用NumPy的:

>>> map(lambda x: sum(x)/3., zip(a,b,c)) 
[1.6666666666666667, 3.3333333333333335, 3.0, 6.0, 5.333333333333333, 3.3333333333333335, 4.333333333333333] 
+1

或者,map(lambda x,y,z:(x + y + z)/ 3,a,b,c)'。 – 2012-04-02 00:39:01