본문 바로가기
데이터 분석/데이터 전처리

[Numpy] 4. 통계량 구하기

by 부자 꽁냥이 2021. 10. 29.

안녕하세요~ 꽁냥이에요. 

 

이번 포스팅에서는 꽁냥이가 자주 쓰는 통계량을 구해주는 Numpy 함수들을 소개하려고 합니다. 아래 테이블에 함수를 소개했고 테이블에서 data는 1차원 배열로 이루어진 데이터를 의미합니다. 실제 사용법은 코드를 참고해주세요.


1. 대표값

평균 np.mean(data)
중앙값 np.median(data)
최빈값 np.bincount(data).argmax()
제 1 사분위수 np.quantile(data, 0.25)
제 2 사분위수 np.quantile(data, 0.5)
제 3 사분위수 np.quantile(data, 0.75)

2. 최대, 최소

최대값 np.max(data)
최소값 np.min(data)

3. 산포 통계량

표본 표준편차(자유도)(*) np.std(data, ddof=True)
표본 표준편차(데이터 개수)(**) np.std(data, ddof=False)
표본 분산(자유도) np.var(data, ddof=True)
표본 분산(데이터 개수) np.var(data, ddof=False)
IQR(Interquartile Range : 사분위 범위) np.subtract(*np.quantile(data, [0.75, 0.25]))
범위 np.max(data)-np.min(data)

(*) : 데이터 $x_i, i=1,2,\ldots, n$이 있을 때 표본 표준편차 계산시 분모를 자유도로 설정(표본 분산도 이와 동일)

$$s = \sqrt{\frac{1}{n-1}\sum_{i=1}^n(x_i-\bar{x})^2}$$

(**) : 데이터 $x_i, i=1,2,\ldots, n$이 있을 때 표본 표준편차 계산시 분모를 데이터 개수로 설정(표본 분산도 이와 동일)

$$s = \sqrt{\frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})^2}$$ 


4. 파이썬 코드

import numpy as np
from scipy.stats import mode
data = np.array([1,1,1,2,3,4,4,11,22,25,33,36])

# 대표값
print('평균 : ', np.mean(data))
print('중앙값 : ', np.median(data))
print('최빈값 : ', np.bincount(data).argmax())
print('제 1 사분위수 : ', np.quantile(data, 0.25))
print('제 2 사분위수 : ', np.quantile(data, 0.5)) 
print('제 3 사분위수 : ', np.quantile(data, 0.75)) 
print('')
# 최대 최소
print('최대값 : ', np.max(data))
print('최소값 : ', np.min(data))
print('')
# 산포를 나타내는 통계량 ddof=True 분모 자유도, ddof=False 분모 데이터 개수
print('표본 표준편차(자유도) : ', np.std(data, ddof=True)) 
print('표본 표준편차(데이터 개수) : ', np.std(data, ddof=False)) 
print('표본 분산(자유도) : ', np.var(data, ddof=True)) 
print('표본 분산(데이터 개수) : ', np.var(data, ddof=False))
print('IQR : ', np.subtract(*np.quantile(data, [0.75, 0.25]))) ## 또는 np.quantile(data, 0.75)-np.quantile(data, 0.25)
print('범위 : ', np.max(data)-np.min(data))

 


여기서 소개하는 함수들은 실제로 많이 사용하므로 알아두시면 유용하게 써먹으실 거예요. 

 


댓글


맨 위로