Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python – 리스트 요소의 평균 편차와 표준편차 구하기

파이썬에서 리스트에 담긴 숫자 요소들의 평균 편차를 구해야 하는 경우가 종종 있습니다. 이럴 때 내장 함수인 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

이처럼 데이터의 흩어짐 정도를 나타내는 편차 지표는 상황에 따라 적절한 것을 선택해 사용하면 됩니다. 표준편차는 이상치에 민감하지만 널리 쓰이며, 평균 절대 편차는 해석이 직관적이라는 장점이 있습니다.