2010-01-28 20 views
11

मैं एक सूचीपायथन: ढूँढना एक नेस्टेड सूची

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

है अब मैं इन भीतरी सूची की औसत खोजने के लिए इतना है कि

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

'एक' नहीं एक नेस्टेड होना चाहिए चाहते हैं की औसत अंत में सूची। कृपया सामान्य मामले

+0

तुम क्या करने की कोशिश की थी? ज़िप के लिए – SilentGhost

उत्तर

4
>>> import itertools 
>>> [sum(x)/len(x) for x in itertools.izip(*a)] 
[4, 5, 6] 
10
a = [sum(x)/len(x) for x in zip(*a)] 
# a is now [4, 5, 6] for your example 

पायथन 2.x में के लिए कोई उत्तर देते हैं, अगर आप पूर्णांक विभाजन नहीं चाहते हैं, sum(x)/len(x) ऊपर 1.0*sum(x)/len(x) से बदलें।

Documentation for zip

+0

+1, लेकिन क्या आप स्वयं को अतिरिक्त फ़ंक्शन की समस्या नहीं बचा सकते? ;) –

+0

मुझे लगा कि ओपी को पायथन बहुत अच्छी तरह से नहीं पता था। वैसे भी संपादन :-) –

4

आप 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.]) 
संबंधित मुद्दे