Numpy sum,mean,median 값 구하는 법

안녕하세요 jay입니다.
오늘은 numpy array에서 sum, mean, median 값을 구하는 법에 대해 알아보도록 하겠습니다.

sum : 행렬의 을 구하는 함수입니다.
mean : 행렬의 평균을 구하는 함수입니다.
median : 행렬의 중간값을 구하는 함수입니다. (행렬의 item갯수가 짝수일 경우 평균으로 값을 구합니다)
np.sum(array), array.sum() 두가지 방식으로 연산이 가능합니다.

# sum , mean, median

import numpy as np

arr = np.arange(1,31,2).reshape(3,5)
print(arr)
"""
[[ 1  3  5  7  9]
 [11 13 15 17 19]
 [21 23 25 27 29]]
"""

# sum : array의 합을 출력해주는 함수
print(np.sum(arr)) # 225
print(arr.sum()) # 225

# mean : array의 평균을 출력해주는 함수
print(np.mean(arr)) # 15.0
print(arr.mean()) # 15.0

# median : array의 중간값을 출력해주는 함수
print(np.median(arr)) # 15.0
#print(arr.median()) # 동작하지 않음

이제 slicing과 axis를 통해서 원하는 부분의 합,평균,중간값을 구해보도록 하겠습니다.
axis는 축으로, axis = 0은 행을 기준으로 연산을 하라라는 의미이고
axis = 1 은 열을 기준으로 연산을 하라는 의미입니다.
예를 들어 3,5 행렬에서 axis = 0 기준으로 연산을 한다면 행 기준으로의 연산이므로
5x1 형태의 행렬이 return됩니다.
아래의 예시를 보고 이해를 하시면 되겠습니다.


import numpy as np 

# axix를 이용한 sum, mean, median
arr2 = np.arange(1,31,2).reshape(3,5)
print(arr2)
"""
[[ 1  3  5  7  9]
 [11 13 15 17 19]
 [21 23 25 27 29]]
"""

# arr2 전체 item들의 합
print(arr2.sum()) # 225

# arr2를 행 기준으로 합
print(arr2.sum(axis = 0)) # [33 39 45 51 57]

# arr2를 열 기준으로 합
print(arr2.sum(axis = 1)) # [ 25  75 125]

# arr2를 행 기준으로 평균을 구함
print(arr2.mean(axis = 0)) # [11. 13. 15. 17. 19.]

# arr2를 열 기준으로 평균을 구함
print(arr2.mean(axis = 1)) # [ 5. 15. 25.]


# 1,4 번째 열을 제외한 부분의 행렬의 최대,최소,평균,중간 값을 구하시오
print(np.max(arr[:,1:4])) # 27
print(np.min(arr[:,1:4])) # 3
print(np.mean(arr[:,1:4])) # 15.0
print(np.median(arr[:,1:4])) # 15.0

댓글