11일차 [ Data Slicing ] - votus777/AI_study GitHub Wiki

Slicing

  • 연속적인 개체들에 (예: List. Tuple, string) 범위를 지정해 선택해서
    객체들을 가져오는 방법 및 표기법을 의미

  • Sclicing을 하면 새로운 list 혹은 집합 객체를 생성하게 된다. 즉, 일부분을 복사해서 가져오는 것.

기본 형태

                          +---+---+---+---+---+---+
                          | P | y | t | h | o | n |
                          +---+---+---+---+---+---+
          Slice position: 0   1   2   3   4   5   6     ->    p[5], p[0:1], p[0:2]
          Index position:   0   1   2   3   4   5       ->     'n',  ['P'], ['P','y']



     a[start : end : step] 
       
       Start : 슬라이싱을 시작할 위치
       end : 슬라이싱을 끝낼 위치로 end 자체는 포함하지 않는다
       step : stride라고도 하며 몇 개씩 끊어서 가져올지를 정한다. 
  • 예제 1
    >>> a = ['a', 'b', 'c', 'd', 'e']
    >>> a[ : : 2 ]
    # 2칸씩 이동하면서 가져옵니다.
    ['a', 'c', 'e']

  • 예제 2
    >>> a = ['a', 'b', 'c', 'd', 'e']
    >>> a[ : : -1 ]
    # 전체를 거꾸로 가져옵니다.
    ['e', 'd', 'c', 'b', 'a']

  • 예제 3
    >>> a = ['a', 'b', 'c', 'd', 'e']
    >>> a[ 3 : : -1 ]
    ['d', 'c', 'b', 'a']

  • 예제 4
    a[:] # a copy of the whole array

  • 예제 5
    >>> p = ['P','y','t','h','o','n'] # Start over
    >>> p[2:4] = ['s','p','a','m']
    >>> p = ['P','y','s','p','a','m','o','n']
    # 추가할 때에 항상 같은 길이일 필요는 없다

  • 예제 6
    >>> p = ['P','y','t','h','o','n']
    >>> p[4:4] = ['x','y']
    >>> p = ['P','y','t','h','x','y','o','n']

reference