[python] 중앙값(median) 계산하기, numpy.median()

코딩/python|2020. 7. 15. 09:52

많은 숫자를 담고 있는 어떠한 데이터를 하나의 숫자로 표현한다면, 무엇으로 나타낼 수 있을까요? 가장 대표적인 것은 바로 평균입니다. 평균을 알면 대략적으로 그 데이터를 판단할 수 있습니다. 평균(mean)과 함께 많이 사용되는 대표값에는 중앙값(median)이란 것도 있습니다. 중앙값이란 말 그대로 자료 내에서 중간에 위치한 값을 의미합니다. 중앙값은 중간에 위치한다고 해서 중위값이라고 불리기도 합니다. 

 

1, 2, 3, 4, 5, 6, 7, 8, 100과 같이 9개의 숫자로 이뤄진 데이터가 있다고 가정해보겠습니다. 이 숫자들의 평균을 구해보겠습니다.

 

(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 100) / 9 = 15.1111

 

평균값 15.1111은 과연 이 데이터를 대표한다고 말할 수 있을까요? 100을 제외하고는 1, 2, 3, ..., 8로 비교적 작은 상황인데 말입니다. 그것보다는 단순히 크기상 중간에 위치한 5가 이 데이터를 대표한다고 보는 것은 어떨까요? 이렇게 대표값을 선정해보면 어떨까 하는 생각에서 나온 것이 바로 중앙값입니다.  

 

방금 살펴본 것처럼 만약에 데이터 내에 이상치(아웃라이어, outlier)가 있는 경우에는 평균보다는 중앙값을 계산해서 대표값으로 삼는 것이 더 좋습니다. 그렇지 않고, 전체적인 값이 비교적 균등하다면 평균이 대표값으로 좀 더 적당할 것입니다. 

 

파이썬에서 중앙값은 넘파이 패키지의 median 함수, numpy.median()를 이용해서 계산할 수 있습니다. 

 

 

중앙값으로 5가 나왔죠? 참고로 numpy 패키지를 import 할 때 np라는 이름으로 부르기로 했기 때문에, numpy.median()을 np.median()과 같이 사용할 수 있는 것입니다. 

 

그런데 만약 숫자가 짝수 개라면 중앙값을 어떻게 구할까요? 홀수 개의 경우에는 중간이 분명한데, 짝수인 경우에는 중간이 애매하죠? 이런 경우에는 중간에 위치한 두 개의 숫자의 평균으로 중앙값을 계산해줍니다. 

 

 

중간에 위치한 5와 6의 평균인 5.5가 위 자료의 대표값이 되었음을 확인하실 수 있습니다.

 

 

bskyvision의 추천글

자료를 대표하는 숫자, 대표값: 평균, 중앙값, 최빈값