반응형
3차원 배열에 shape 메소드를 사용해보고 결과에 대한 고찰을 해보려고 합니다.
2차원 배열에서 shape 결과는 행과 열의 개수 였습니다.
>>> ar2=np.array([[1,2,3],[4,5,6]])
>>> ar2
array([[1, 2, 3],
[4, 5, 6]])
>>> ar1.shape
(2, 3)
3차원 배열을 하나 정의해봅시다.
>>> ar3=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]] ] )
>>> ar3
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]]])
1층에 아래 행렬이
1 2 3 4
5 6 7 8
9 10 11 12
2층에 아래 행렬이
13 14 15 16
17 18 19 20
21 22 23 24
정의되도록 하였습니다.
shep 메소드를 적용해봅시다.
>>> ar3.shape
(2, 3, 4)
(행,열,층) 으로 나오면 좋겠는데 (층,행,열)로 나옵니다. 이유가 무엇인지 알아봅시다. shape 메소드는 여러겹으로 중첨된 리스트의 바깥부터 개수를 셉니다. 아래 배열 봅시다.
>>> ar2=np.array( [ [1,2,3] , [4,5,6] ] )
가장 바깥의 리스트 관점에서 보면 원소의 개수는 [1,2,3] 과 [4,5,6] 두개입니다. 따라서 shape의 첫번째 값은 2가 됩니다. 안에 리스트들의 원소 개수는 3개이므로 shape의 두번째 값은 3이 되어 shape 반환값이 (2,3)인 것입니다.
이 개념을 3차원 배열에도 적용해봅시다.
>>> ar3=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]] ] )
가장 바깥 리스트 관점에서 원소 수는 [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 와 [[13,14,15,16],[17,18,19,20],[21,22,23,24]] 이므로 shape의 첫번째 값은 2가 됩니다. 안에 있는 리스트들의 원소 수는 3개이고, 그 안에 있는 리스트들의 원소 수는 4개이므로 shape 의 반환값은 (2,3,4)가 되는 것입니다. 배열의 차원이 더 높아져도 같은 원리가 적용됩니다.
반응형
'파이썬 > 통계분석' 카테고리의 다른 글
[파이썬 강의] 59. 주피터 노트북 크롬에서 실행하기 (0) | 2021.10.22 |
---|---|
[파이썬 강의] 58. 주피터 노트북 설치하고 실행하기 (0) | 2021.10.22 |
[파이썬 강의] 56. 배열의 차원, 모양, 원소 수 (0) | 2021.10.18 |
[파이썬 강의] 55. 3차원 배열의 정의, 인덱싱, 슬라이싱 (0) | 2021.10.15 |
[파이썬 강의] 54. 행 또는 열의 길이가 다른 배열도 정의가 가능한가 (0) | 2021.10.15 |
댓글