따라서 위의 데이터는 평균이 3이고 각 값은 평균적으로 약 1.5 정도 떨어져 있다고 생각하면 된다. 즉, 평균과 표준편차라는 두 값으로 다섯 개의 숫자로 이뤄진 데이터의 특성을 압축하는 셈이다. 이제 데이터가 다섯 개, 5,000개, 500,000개라도 평균과 표준편차, 이 두 개의 숫자만 계산하면 그 데이터를 손에 쥐는 셈이다.
평균과 표준편차, 분산을 한번 계산해보자.
# 분산을 계산할 리스트 nums를 준비한다
nums = [ 1, 2, 3, 4, 5 ]
# 리스트의 평균을 계산한다
avg = sum( nums ) / len( nums )
# 리스트를 반복해 편차 제곱합을 계산한다
sumsquare = 0.0
# nums 리스트를 반복하면서 n에 저장하고
for n in nums:
# 여기서 평균(avg)을 뺀 결과를 제곱(**2)해 합계를 구한다
sumsquare = sumsquare + ( n – avg )**2
var = sumsquare / ( len( nums ) -1 )
print( var )
# 위의 for 루프는 다음과 같이 바꿀 수 있다
sumsquare = sum( (n-avg)**2 for n in nums )
# 편차 제곱합을 데이터 개수로 나누고 결과를 출력한다
var = sumsquare / ( len( nums ) -1 )
print( var )
# 표준편차를 구하려면 sqrt( ) 함수가 필요하므로 math 모듈을 임포트한다
import math
stdev = math.sqrt( var )
print( stdev )