ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • numpy array slicing이 원본 크기를 넘어 섰을 때
    python 기초 2024. 1. 1. 00:11
    728x90

    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
Designed by Tistory.