본문 바로가기
파이썬/통계분석

[파이썬 강의] 55. 3차원 배열의 정의, 인덱싱, 슬라이싱

by 만다린망고 2021. 10. 15.
반응형

3차원 배열은 리스트를 세겹 중첩하여 정의합니다. 4행 3열 2층 의 3차원 배열을 정의하고 싶다고 해봅시다. 아래 두 행렬이 높이 방향을 쌓여있는 3차원 배열을 정의하고 싶은 것입니다. 여기서 '고'는 높이를 의미합니다. 

1 2 3
4 5 6

7 8 9
10 11 12

아래와 같이 정의하면 됩니다. 

>>> import numpy as np

>>> ar1=np.array([ [[1,2,3],[4,5,6]] , [[7,8,9],[10,11,12]] ])
>>> ar1
array([[[1, 2, 3],
        [4, 5, 6]],

       [[7, 8, 9],
        [10, 11, 12]]])


인덱싱을 해봅시다. 첫번째 자리의 인덱싱이 '층'임을 알 수 있습니다. 

>>> ar1[0]
array([[1, 2, 3],
       [4, 5, 6]])
>>> ar1[1]
array([[7, 8, 9],
       [10, 11, 12]])


두번째 자리 인덱싱이 행입니다. 

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


마지막 세번째 자리 인덱싱이 열입니다. 

>>> ar1[0][0][0]
1
>>> ar1[0][0][1]
2


콤마를 이용한 인덱싱으로 설명하면 (층,행,열) 순서가 됩니다. 2차원 배열에서는 (행,열) 순서였습니다. 

이번에는 슬라이싱을 해봅시다. 원리는 같아서 간단히만 설명하겠습니다. 2층 1행에 있는 8,9에 접근해봅시다. 아래와 같이 두가지 방법이 있습니다. 

>>> ar1[1][0][1:3]
array([8, 9])

>>> ar1[1,0,1:3]
array([8, 9])

 

반응형

댓글