[Python] 파이썬, 평균, 분산, 표준편차 구하기
- Language/Python
- 2021. 5. 22.
이 포스팅은 일반적인 계산으로 구하는 것과 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만큼 좋은 라이브러리는 없는 것 같습니다.
반응형
'Language > Python' 카테고리의 다른 글
[Python] 메타문자와 findall() #1 - 파이썬 정규표현식 (0) | 2021.06.13 |
---|---|
[Python] 리스트(List) 정렬, 역정렬 (0) | 2021.05.31 |
[Python] 파이썬, 소인수 분해하기 (0) | 2021.05.22 |
[Python] 파이썬으로 랜덤(random) 사용 및 로또 만들기 (0) | 2021.01.29 |
[Python] 파이썬의 생성자와 소멸자 (0) | 2021.01.17 |