-
numpy array slicing이 원본 크기를 넘어 섰을 때python 기초 2024. 1. 1. 00:11728x90
numpy array를 slicing하는 데, 원본 크기보다 더 큰 범위를 slicing하여도 원데이터를 벗어나지 않는 크기로 slicing을 한다는 것을 알았다.
아래와 같이 array를 만들고 위치를 slicing하면 해당 위치의 값이 나온다.
import numpy as np a=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,25,26,27,28,29,30], [31,32,33,34,35,36,37,38,39,40]]) print(a[1:4,3:5])
아래와 같이 해당 위치의 sub array가 나오게 된다.
[[14 15] [24 25] [34 35]]
이 때, slicing하는 범위가 기존 array의 크기를 넘어가면, error가 나는 것이 아니라
아래와 같이 array 내부에 해당하는 부분만 출력하게 된다.
print(a[1:5,3:5]) print(a[1:6,3:5]) print(a[1:7,3:5])
slicing하는 세로 범위를 기존 array크기를 넘어서 키우더라도, 출력은 커지지 않는다.
[[14 15] [24 25] [34 35]] [[14 15] [24 25] [34 35]] [[14 15] [24 25] [34 35]]
아래와 같이 slicing 할 때, array 크기를 벗어나더라도 그 범위에 해당하는 값을 출력한다고 이해하면 된다.
재미있는건, slicing의 시작 address가 array를 벗어나도 에러는 나지 않는다는 것이다.
728x90'python 기초' 카테고리의 다른 글
pandas dadtaframe 수치형 / 범주형 분리 (0) 2024.08.24 zfill string 자릿수 맞추기 (0) 2024.02.26 pillow-simd install 에러 (0) 2023.12.18 python mkdir makedirs exist_ok (0) 2023.11.14 cupy util import error (0) 2023.11.14