[Python] 파이썬, 평균, 분산, 표준편차 구하기

이 포스팅은 일반적인 계산으로 구하는 것과 numpy를 활용하는 것 2가지 방식을 모두 제공합니다.

 

파이썬으로 평균, 분산, 표준편차 연산하기

 

라이브러리 및 리스트 생성

import math
import numpy

vals = [i+1 for i in range(10)] # 1부터 10까지 숫자를 리스트로 생성
print(vals)

# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

우선 for문을 사용하여 1 ~ 10까지의 숫자를 리스트로 생성하여 vals라는 변수에 담습니다.

 

평균구하기

# 평균
mean = sum(vals) / len(vals)
print(mean)

# 5.5

일반적인 방식으로 평균을 구하는 방식은 이와 같이 더하고 나누는 작업을 해야 하지만

 

# Numpy 평균
num_mean = numpy.mean(vals)
print(num_mean)

# 5.5

넘파이(Numpy)를 사용하면 이와 같이 매우 쉽게 평균을 구할 수 있습니다. 그러나 평균은 뭐 다 쉽죠

 

분산구하기

# 분산
vsum = 0
for val in vals:
    vsum = vsum + (val - mean)**2
variance = vsum / len(vals)
print(variance)

# 8.25

분산을 구하는 과정부터 복잡해지기 시작합니다. 위 방식은 일반적으로 분산을 구하는 방법입니다.

 

# Numpy 분산
num_var = numpy.var(vals)
print(num_var)

# 8.25

그러나 Numpy로 하면 이 마저도 매우 쉽게 구할 수 있습니다. 결과 역시 같다는 걸 알 수 있습니다.

 

표준편차 구하기

# 표준편차
std = math.sqrt(variance)
print(std)

# 2.8722813232690143

표준편차를 구하기 위해서는 분산을 알아야 합니다. 결국 일반적인 방식으로 구하기 위해서는 위 계산식들(평균, 분산)이 모두 필요합니다.

 

# Numpy 표준편차
std = numpy.std(vals)
print(std)

# 2.8722813232690143

Numpy로 하면 이 모든 계산식들이 필요가 없어지며 오로지 std만 호출하고 리스트만 넣어주면 끝이 납니다. 결국 표준편차와 같은 값을 구할 때에는 Numpy만큼 좋은 라이브러리는 없는 것 같습니다.

반응형

댓글

Designed by JB FACTORY