파이썬에서 리스트에 담긴 숫자 요소들의 평균 편차를 구해야 하는 경우가 종종 있습니다. 이럴 때 내장 함수인 sum()과 len()만 활용하면 별도의 외부 라이브러리 설치 없이도 간단하게 계산할 수 있습니다.
예제 코드
아래는 리스트 요소들의 평균, 분산, 그리고 분산의 제곱근인 표준편차까지 한 번에 구하는 전체 예제입니다.
my_list = [3, 5, 7, 10, 12]
print("리스트 :")
print(my_list)
# 1. 평균(mean) 계산
my_mean = sum(my_list) / len(my_list)
# 2. 분산(variance) 계산
my_variance = sum([((x - my_mean) ** 2) for x in my_list]) / len(my_list)
# 3. 분산의 제곱근 = 표준편차
my_result = my_variance ** 0.5
print("계산 결과 :")
print(my_result)
출력 결과
리스트 : [3, 5, 7, 10, 12] 계산 결과 : 3.2619012860600183
코드 설명
숫자로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
sum()으로 리스트의 합계를,len()으로 요소 개수를 구합니다.합계를 요소 개수로 나누어 평균값을 계산한 뒤 변수에 저장합니다.
리스트를 순회하면서 각 요소에서 평균을 뺀 값을 제곱합니다.
제곱한 값들을 모두 더한 후 요소 개수로 나누어 분산을 구하고 다른 변수에 저장합니다.
분산의 제곱근(
** 0.5)을 구해 표준편차를 계산하고 결과 변수에 할당합니다.이 최종 결과값이 콘솔에 출력됩니다.
참고: statistics 모듈 활용하기
파이썬 3.4부터는 표준 라이브러리인 statistics 모듈을 사용하면 통계값을 더욱 간결하고 안정적으로 구할 수 있습니다.
import statistics my_list = [3, 5, 7, 10, 12] print(statistics.mean(my_list)) # 평균 → 7.4 print(statistics.pvariance(my_list)) # 모분산 → 10.64 print(statistics.pstdev(my_list)) # 모집단 표준편차 → 3.2619012860600183
또한, 각 요소와 평균 사이 거리의 절댓값 평균인 평균 절대 편차(MAD)가 필요하다면 아래와 같이 구할 수 있습니다.
mad = sum(abs(x - my_mean) for x in my_list) / len(my_list) print(mad) # 2.88
이처럼 데이터의 흩어짐 정도를 나타내는 편차 지표는 상황에 따라 적절한 것을 선택해 사용하면 됩니다. 표준편차는 이상치에 민감하지만 널리 쓰이며, 평균 절대 편차는 해석이 직관적이라는 장점이 있습니다.