안녕하세요~ 꽁냥이에요.
이번 포스팅에서는 꽁냥이가 자주 쓰는 통계량을 구해주는 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))
여기서 소개하는 함수들은 실제로 많이 사용하므로 알아두시면 유용하게 써먹으실 거예요.
'데이터 분석 > 데이터 전처리' 카테고리의 다른 글
[Pandas] 23. 데이터 유일(유니크, unique)값과 개수 구하기 (399) | 2022.04.07 |
---|---|
[Pandas] 22. Transform을 이용하여 그룹별 통계값으로 결측치 대체하기 (387) | 2022.04.03 |
[Numpy] 3. 배열 연산(Operation) (857) | 2021.09.21 |
[Numpy] 1. Numpy 배열 생성하기 (814) | 2021.09.20 |
[Pandas] 21. 칼럼에 특정 값을 채워 넣기(칼럼 수정하기) (1043) | 2021.07.03 |
댓글