26. NumPy 어레이 슬라이싱 활용하기


NumPy 어레이 슬라이싱 활용하기

이 페이지에서는 NumPy 어레이를 슬라이싱하는 방법을 그림과 함께 소개합니다.

1차원 어레이의 슬라이싱에 대해서는 파이썬 리스트 슬라이싱 활용하기 페이지를 참고하세요.



NumPy 어레이 슬라이싱 활용하기

위 그림과 같이 16개의 숫자를 포함하는 2차원 어레이가 있습니다.

어레이 슬라이싱을 사용하면 이 2차원 어레이의 성분을 다양하게 선택할 수 있습니다.




1) 첫번째 축을 따라 슬라이싱하기


NumPy 어레이 슬라이싱 활용하기

예제

import numpy as np

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])

print(arr)
print(arr[1:3])
print(arr[:-1])
print(arr[::2])
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
[[ 5  6  7  8]
 [ 9 10 11 12]]
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
 [[ 1  2  3  4]
  [ 9 10 11 12]]

첫번째 축 (axis=0)을 따라 어레이를 슬라이싱하면 그림의 가로 방향으로 성분들을 선택합니다.




2) 두번째 축을 따라 슬라이싱하기


NumPy 어레이 슬라이싱 활용하기

예제

import numpy as np

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])

print(arr)
print(arr[:, 1:3])
print(arr[:, :-1])
print(arr[:, ::2])
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
[[ 2  3]
 [ 6  7]
 [10 11]
 [14 15]]
[[ 1  2  3]
 [ 5  6  7]
 [ 9 10 11]
 [13 14 15]]
[[ 1  3]
 [ 5  7]
 [ 9 11]
 [13 15]]

두번째 축 (axis=1)을 따라 어레이를 슬라이싱하면 그림의 세로 방향으로 성분들을 선택합니다.




3) 모두 사용하기


NumPy 어레이 슬라이싱 활용하기

예제

import numpy as np

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])

print(arr)
print(arr[1:3, :-1])
print(arr[2:, 1:3])
print(arr[::2, ::2])
print(arr[1::2, 1::2])
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
[[ 5  6  7]
 [ 9 10 11]]
[[10 11]
 [14 15]]
[[ 1  3]
 [ 9 11]]
[[ 6  8]
 [14 16]]

첫번째, 두번째 축을 모두 슬라이싱해서 어레이의 성분을 자유롭게 선택할 수 있습니다.


전체 내용은 아래 그림을 참고하세요.


NumPy 어레이 슬라이싱 활용하기


이전글/다음글