라벨이 넘파이인 게시물 표시

[python] numpy sum으로 axis 연산 정리(2): 3차원

이미지
python numpy 연산에 사용되는 axis 구조를 알아보는 글이며, 틀린 내용은 댓글 부탁드립니다. 이전 글을 보지 않으신 분은 아래의 글을 먼저 보고 와주세요. python numpy sum으로 axis 연산 정리(1) numpy sum을 통해 3차원 배열에서 axis 연산이 어떻게 사용되는지 알아보겠습니다. 3차원에서 sum 1. axis None axis를 'None'으로 설정하면 모든 요소의 값을 '합산'한 값을 출력합니다. arr = np.array([[[ 1 ,  2 ,  3 ,  4 ] ,   [ 5 ,  6 ,  7 ,  8 ]] ,                             [[ 9 ,  10 ,  11 ,  12 ] ,   [ 13 ,  14 ,  15 ,  16 ]] ,                             [[ 17 ,  18 ,  19 ,  20 ] ,   [ 21 ,  22 ,  23 ,  24 ]]]) arr_sum = np.sum(arr ,  axis = None ) print ( 'sum axis None: ' ,  arr_sum) # 출력 # sum axis None:  300 2. axis 0 axis '0'으로 설정하면 'depth'을 기준으로 요소의 합을 도출합니다. ※ axis 0이 왜 'depth'인지 모르시는 분은 numpy axis 기본구조 글을 먼저 읽고 와주세요. 현재 3차원 배열의 구조는 아래의 그림처럼 표현할 수 있기 때문에 sum은 axis 0의 값을 '합산'하여 axis 0이 제거된 '2차원 배열 값'을 새롭게 반환합니다. (3, 2, 4) shape 데이터 sum 결과는 axis 0(depth)이 제거된 (2, 4) shape의 2차원 배열이 반환되는 걸 확인할 수

[python] numpy에서 사용하는 axis 기본 구조

이미지
python numpy가 사용하는 axis 구조를 알아보는 글입니다. 혹여 틀린 내용은 댓글 부탁드립니다. axis 란 python에서 axis란 차원을 의미합니다. 따라서 1차원 배열에서 axis는 0이 존재하며, 2차원 배열에서 axis는 0(행), 1(열)이 존재합니다. numpy 함수에서는 axis를 기준으로 값들을 처리하는데, axis가 생각보다 헷갈리기 때문에 axis의 개념을 알아보겠습니다. numpy 배열의 차원을 알아보는 방법으로는 shape 함수를 사용합니다. shape을 통해 데이터가 몇 차원으로 몇 개의 데이터가 구성되어 있는지 확인할 수 있습니다. 1. numpy에서 사용하는 axis 구조 (1차원) arr = np.array([ 1 , 2 , 3 , 4 ]) print ( 'arr.shape: ' , arr.shape) # 출력 # arr.shape:  (4,) np shape 함수를 통해 1차원 배열을 확인할 수 있습니다. (4, )는 1차원의 데이터로 총 4개의 데이터를 가지고 있음을 나타냅니다. axis는 차원의 수 만큼 존재합니다. (0부터 시작) 1차원 -> axis 0 2차원 -> axis 1, 2 1차원 배열 shape axis 순서 1차원 배열을 그림으로 그릴 때 axis를 구상하는 방식에 따라 '표현'의 차이가 있을 수 있습니다. Ex. 위의 1, 2번은 동일한 배열에 대해 axis를 어디로 표현했느냐에 차이일 뿐 모두  '같은 내용을 그림 상 다르게 표현' 한 겁니다. 여기에서는 1번 그림으로 axis를 설명할 예정이니, 다른 블로그의 그림과 다르다고 헷갈리지 않기를 바랍니다. axis 0 방향으로 배열에 접근한 뒤 가져온 배열 값을 출력합니다. print ( 'arr[0]: ' ,  arr[ 0 ]) print ( '

[python] numpy sum으로 axis 연산 정리(1): 1,2차원

이미지
python numpy 연산에 사용되는 axis 구조를 알아보는 글이며, 틀린 내용은 댓글 부탁드립니다. python axis 개념이 안잡히신 분은 아래의 글을 먼저 보고 와주세요. numpy axis 기본 구조 sum을 통해 numpy에서 axis를 연산이 어떻게 사용되는지 알아보겠습니다. sum함수를 간단하게 살펴보자면 parameter 'a'에 numpy array를 넣어 요소의 합을 내는 함수입니다. 이 때 axis를 어떻게 두냐에 따라 sum을 하는 방법이 달라집니다. axis None: 몇 차원 배열이든 간 모든 요소의 합을 도출합니다. axis 0: 0을 기준으로 요소의 합을 도출합니다. axis 1: 1을 기준으로 요소의 합을 도출합니다. axis 2: 2을 기준으로 요소의 합을 도출합니다. 1. 1차원에서 sum 1차원 배열에서 axis를 0으로 설정하면 '행'을 기준으로 요소의 합을 도출합니다. 그림으로 보면 아래와 같습니다. axis 0 방향 배열에 접근한 뒤 합산하면 1 + 2+ 3 + 4의 총합인 10이 도출됩니다. import numpy as np  arr = np.array([ 1 , 2 , 3 , 4 ])  arr_sum0 = np.sum(arr , axis = 0 )  print ( 'arr: ' , arr)  print ( 'arr_sum0: ' , arr_sum0) # 출력 # arr:  [1 2 3 4] # arr_sum0:  10 2. 2차원에서 sum 2-1. axis None axis를 'None'으로 설정하면 모든 요소의 값을 '합산'한 값을 출력합니다. arr = np.array([[ 1 , 2 , 3 , 4 ] , [ 5 , 6 , 7 , 8 ]]) arr_sum = np.sum(ar