4.4.3 3차원 배열의 첨자와 슬라이싱
다음 a는 모양 (2, 3, 4)의 3차원 배열이다.
a = np.arange(24).reshape(2, 3, 4)
a
출력:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
3차원 배열 (2, 3, 4)는 3행 4열인 2차원 배열 2개로 구성된 배열로 이해하면 쉽다.
코드 a[1]은 axis=0의 첨자 1로 두 번째 (3, 4) 배열이다.
a[1]
출력:
array([[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
다음 코드는 axis=0의 모든 배열에서 axis=1의 첨자 1인 (2, 4) 모양 2차원 배열이 반환된다.
a[:, 1]
출력:
array([[ 4, 5, 6, 7],
[16, 17, 18, 19]])
다음 코드로는 위 반환 배열의 axis=2의 첨자 1인 (1, 2) 모양 2차원 배열이 반환된다.
a[:, :, 1]
출력:
array([[ 1, 5, 9],
[13, 17, 21]])
다음처럼 ...은 해당되는 축(axis)이 모두 :인 것을 의미한다. 즉, a[1, ...]은 a[1, :, :]와 같다.
a[1, ...]
출력:
array([[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
다음 코드 a[1]은 a[1, :, :]와 같다.
a[1]
출력:
array([[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
서브목차