반응형
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])
반응형
'파이썬 > 통계분석' 카테고리의 다른 글
[파이썬 강의] 57. 3차원 배열의 모양에 대한 고찰 (0) | 2021.10.20 |
---|---|
[파이썬 강의] 56. 배열의 차원, 모양, 원소 수 (0) | 2021.10.18 |
[파이썬 강의] 54. 행 또는 열의 길이가 다른 배열도 정의가 가능한가 (0) | 2021.10.15 |
[파이썬 강의] 53. 넘파이의 자료형 (0) | 2021.10.15 |
[파이썬 강의] 52. 2차원 배열(행렬)의 행렬곱 (0) | 2021.10.14 |
댓글