2017-10-24 7 views
1

次の例では、[2,6,4.5] を取得する必要があります。なぜなら、第1列では、除外6 2列目の(3 + 9)/ 2)= 6、((4 + 5)/ 2)= 4.5python:特定の値を除いたリストのリストからすべての値を取得し、各列の平均を取得する方法は?

ここでは、 フィルタと、ここにリストcompreheを使用してマップはその後、x_t = zip(*x)転置イディオムを使用して、単に転置を取る6

def mean(x): 
    return sum(x)/float(len(x)) 


x = [[2,3,4],[6,9,5]] 
b = map(mean, zip(*x)) 
print (b) 

答えて

0

を排除することなく、列ごとに平均値を取得するために私のコードですnsion:

>>> [mean([i for i in sub if i !=6]) for sub in zip(*x)] 
[2.0, 6.0, 4.5] 
+0

は、あなたの迅速な対応Juanpaためにどうもありがとうございます。 –

0
map(lambda b:sum(b)/float(len(b)), map(lambda y:filter(lambda a:a!=6, y), zip(*x))) 
関連する問題