Numpy 연산(sum, mean, std, exp, vstack, hstack)과 axis의 의미

파이썬/Numpy|2019.08.07 17:30

sum() - 배열의 모든 요소들의 합을 구함

arr = np.array([1,2,3,4,5])
arr.sum(dtype=np.float)
15

 

sum(axis=0) - axis 어떤 축을 기준으로 연산할 것인가 지정.

(3, 4)의 shape인 행렬을

axis=0으로 지정하면 row를 기준으로 연산

axis=1으로 지정하면 column을 기준으로 연산

shape의 가장 앞부터 0

 

다음 예는 (3,2,4) 행렬의 sum 연산이다.


arr = np.array([
    [[1, 2, 3, 4], 
     [5, 6, 7, 8]],
    
    [[1, 2, 3, 4], 
     [5, 6, 7, 8]],
     
    [[1, 2, 3, 4], 
     [5, 6, 7, 8]]])

arr.shape
(3, 2, 4)

print(arr.sum(axis=0))
[[ 3  6  9 12]
 [15 18 21 24]]

print(arr.sum(axis=1))
[[ 6  8 10 12]
 [ 6  8 10 12]
 [ 6  8 10 12]]

print(arr.sum(axis=2))
[[10 26]
 [10 26]
 [10 26]]
 

 

mean() - 넘파이 배열의 평균값을 구함

arr.mean() - 전체 요소에 대한 평균

arr.mean(axis=0) - 0축의 평균

 

std() - 넘파이 배열의 표준편차를 구함 

arr.std()  - 전체 요소에 대한 평균

arr.std(axis=0)  - 0축의 표준 편차

 

np.exp(arr) - 요소들의 자연상수제곱값을 구함

np.sqrt(arr) - 요소들의 제곱근을 구함

np.vstack((arr1, arr2)) - 배열들을 vertical 수직으로 합침

np.hstack((arr1, arr2)) - 배열들을 horizontal 수평으로 합침


arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
np.vstack((arr1,arr2))

array([[1, 2, 3],
       [4, 5, 6]])

arr1 = np.array([[1],[2],[3]])
arr2 = np.array([[4],[5],[6]])
np.hstack((arr1,arr2))

array([[1, 4],
       [2, 5],
       [3, 6]])

arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
np.hstack((arr1,arr2))

array([1, 2, 3, 4, 5, 6])

배열의 shape와 수평, 수직을 잘 확인하고 사용해야 함

 

 

댓글()