파이썬에서 평균 목록을 찾아야합니다. 이것은 지금까지 내 코드입니다
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
print reduce(lambda x, y: x + y, l)
목록에 값을 합산하여 값을 나누는 방법을 모르겠습니다.
답변
Python 3.4 이상에서는 다음을 사용할 수 있습니다 statistics.mean()
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
import statistics
statistics.mean(l) # 20.11111111111111
이전 버전의 Python에서는 할 수 있습니다
sum(l) / len(l)
파이썬 2에서는 len
float 나누기를 얻기 위해 float 로 변환해야합니다
sum(l) / float(len(l))
사용할 필요가 없습니다 reduce
. 훨씬 느리고 Python 3에서 제거 되었습니다.
답변
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
답변
당신은 사용할 수 있습니다 numpy.mean
:
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
import numpy as np
print(np.mean(l))
답변
통계 모듈은 한 파이썬 3.4에 첨가 . 평균이라는 평균 을 계산하는 기능이 있습니다. 제공 한 목록의 예는 다음과 같습니다.
from statistics import mean
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
mean(l)
답변
reduce()
파이썬이 완벽하게 cromulent sum()
함수를 가질 때 왜 이것을 사용 하겠습니까?
print sum(l) / float(len(l))
( float()
파이썬이 부동 소수점 나누기를하도록 강제해야한다.)
답변
python> = 3.4를 사용하는 경우 통계 라이브러리가 있습니다.
https://docs.python.org/3/library/statistics.html
이런 방법으로 사용할 수 있습니다. 당신이 찾고 싶은 숫자의 목록이 있다고 가정 해 봅시다.
list = [11, 13, 12, 15, 17]
import statistics as s
s.mean(list)
그것은 너무 유용한 stdev, variance, mode, harmonic mean, median 등과 같은 다른 방법을 가지고 있습니다.
답변
캐스팅하여 플로팅하는 대신 합계에 0.0을 추가 할 수 있습니다.
def avg(l):
return sum(l, 0.0) / len(l)