본문 바로가기

IT 기본/파이썬

python에서 axis(축)

배열과 axis(축)

1차원 배열

  • X축만 존재
  • axis = 0만 존재. 각 값을 의미
  • 대괄호가 1개로 시작
  • ex) [1,2,3,4,5]
import numpy as np

x = np.array([1,2,3,4,5])

x.shape

# (5,)

5개의 요소

 

2차원 배열

  • X축과 Y축이 존재
  • axis = 0, 1이 존재
    • 0은 X축인 행, 1은 Y축인 열을 의미
  • depth는 1
  • 대괄호가 2개로 시작
  • ex) [[ 1, 2 ] ,[ 3, 4 ] ,[ 5, 6 ]]
import numpy as np

x = np.array([[ 1, 2 ] ,[ 3, 4 ] ,[ 5, 6 ]])

'''

[

  [ 1, 2 ] 

  ,[ 3, 4 ] 

  ,[ 5, 6 ]

]

'''

x.shape

#(3, 2)

1차원인 2개의 요소를 3개의 배열로 구성

 

3차원 배열

  • X축, Y축, Z축이 존재
  • Z는 depth를 의미
  • axis = 0, 1, 2가 존재
    • 0은 X축인 행, 1은 Y축인 열, 2는 Z축인 depth를 의미
  • 대괄호가 3개로 시작
  • ex) [[[ 1, 2, 3, 4],[ 5, 6, 7, 8]],[[ 11, 12, 13, 14],[ 15, 16, 17, 18]]]
import numpy as np

x = np.array([[[ 1, 2, 3, 4],[ 5, 6, 7, 8]],[[ 11, 12, 13, 14],[ 15, 16, 17, 18]],[[ 21, 22, 23, 24],[ 25, 26, 27, 28]]])



'''

[

  [

    [ 1, 2, 3, 4]

    ,[ 5, 6, 7, 8]

  ]

  ,[

    [ 11, 12, 13, 14]

    ,[ 15, 16, 17, 18]

  ]

  ,[

    [ 21, 22, 23, 24]

    ,[ 25, 26, 27, 28]

  ]

]

'''

x.shape

#(3, 2, 4)

가장 안쪽 차원 4개 요소를 2개의 배열로 구성. 이것을 다시 3개의 배열로 구성

 

axis 개념으로 np.sum 연산

x,y,z인 3차원 배열인 경우

  • axis = 0은 x요소를 나타냄
    • np.sum시에 axis=0을 기준으로 집계하면 x요소가 합산되어, y,z 형태의 2차원 배열이 됨
  • axis = 1은 y요소를 나타냄
    • np.sum시에 axis=1을 기준으로 집계하면 y요소가 합산되어, x,z 형태의 2차원 배열이 됨
  • axis = 2은 z요소를 나타냄
    • np.sum시에 axis=2을 기준으로 집계하면 z요소가 합산되어, x,y 형태의 2차원 배열이 됨

예제) 3,2,4 형태의 3차원 배열

4개의 요소를 2개의 배열로 구성. 이를 다시 3개의 배열로 구성

axis = 0으로 합산

  • 3,2,4 배열에서 x인 3요소가 합산되어 2,4 형태의 배열로 변환
  • x는 가장 바깥의 차원에 해당되기 때문에 합산하면 첫번째 차원의 대괄호가 사라짐

 

  • 첫번째 차원의 요소를 합산
  • 배열의 합은 각 차원의 순서 값 끼리 합산
    • ex) 1, 11, 21은 해당 차원의 같은 순서인 값
  • 2,4 형태로 변환됨

  [

    [ 1 + 11 + 21, 2 + 12 + 22, 3 + 13 + 23, 4 + 14 + 24]

    ,[ 5 + 15 + 25, 6 + 16 + 26, 7 + 17 + 27, 8 + 18 + 28]

  ]

 

axis = 1으로 합산

  • 3,2,4 배열에서 y인 2요소가 합산되어 3,4 형태의 배열로 변환
  • y는 가장 두번째 차원에 해당되기 때문에 합산하면 두번째 차원의 대괄호가 사라짐

 

  • 두번째 차원의 요소를 합산
  • 배열의 합은 각 차원의 순서 값 끼리 합산
    • ex) 1, 5는 해당 차원의 같은 순서인 값
  • 2,4 형태로 변환 

  [

    [ 1 + 5, 2 + 6 , 3 + 7, 4 + 8 ]

    ,[ 11 + 15, 12 + 16, 13 + 17, 14 + 18]

    ,[ 21 + 25, 22 + 26, 23 + 27, 24 + 28 ] 

  ]

 

axis = 2으로 합산

  • 3,2,4 배열에서 z인 4요소가 합산되어 3,2 형태의 배열로 변환
  • z는 가장 세번째 차원에 해당되기 때문에 합산하면 세번째 차원의 대괄호가 사라짐

 

  • 마지막 차원의 요소를 합산
  • 마지막 차원의 값들은 []로 묶여 있지 않으므로 전체 요소 합

  [

    [ 1 + 2 + 3 + 4 , 5 + 6 + 7 + 8 ]

    ,[ 11 + 12 + 13 + 14 , 15 + 16 + 17 + 18 ]

    ,[ 21 + 22 + 23 + 24 , 25 + 26 + 27 + 28 ] 

  ]

 

'IT 기본 > 파이썬' 카테고리의 다른 글

python에서 with문  (0) 2020.06.11