파이썬(Python)/numpy

[Python]리스트와 Numpy 배열 슬라이싱 방법 (List, slicing, 나누기)

끄적끄적아무거나 2022. 1. 10. 23:33
반응형

 

목차

     

     

     

    [Python]리스트와 Numpy 배열 슬라이싱 방법 : Syntax

     

    리스트(List)나 Numpy 배열을 조각 내거나 합칠 때 Index 를 사용해서 할 수 있고 동일한 문법이 적용 됩니다. 

    인덱스(Index) 값은 아래와 같이 정의 됩니다.

     

    [start:end]
    [start:end:step]

     

    콜론으로 2개만 값이 들어가면 시작점과 끝점이고 1개가 더 있을 경우는 step 간격으로 시작 끝점을 표기 한것 입니다.

     

    아래 예제를 통해 이해해보도록 하겠습니다.

     

     

     

    [Python]리스트와 Numpy 배열 슬라이싱 방법 : [start : end]

     

    예제 코드>>

    import numpy as np
    import random
    
    a_list = []
    for _ in range(10):
        a_list.append(random.randint(1,10))
    
    np_list = np.array(a_list)
    
    print("a_list : ", a_list)
    print("np_list : ", np_list)
    
    print("a_list[2:4] : ", a_list[2:4])
    print("np_list[2:4] : ", np_list[2:4])
    
    print("a_list[:4] : ", a_list[:4])
    print("np_list[4:] : ", np_list[4:])
    
    print("a_list[-5:-2] : ", a_list[-5:-2])
    print("np_list[-6:-3] : ", np_list[-6:-3])

    4~6번 라인: 1~10의 정수 값 10개를 랜덤으로 a_list에 넣음

    8번 라인: numpy 배열 생성

    10~11번 라인: numpy 배열과 리스트 값 출력

    13~14번 라인: 슬라이싱으로 원하는 값 필터

    16~17번 라인: 시작점, 끝점 index만 표기

    19~20번 라인: 음수 index로 slicing

     

    결과>>

    a_list :  [5, 3, 4, 2, 3, 2, 8, 2, 3, 7]
    np_list :  [5 3 4 2 3 2 8 2 3 7]
    a_list[2:4] :  [4, 2]
    np_list[2:4] :  [4 2]
    a_list[:4] :  [5, 3, 4, 2]
    np_list[4:] :  [3 2 8 2 3 7]
    a_list[-5:-2] :  [2, 8, 2]
    np_list[-6:-3] :  [3 2 8]

     

     

    [Python]리스트와 Numpy 배열 슬라이싱 방법 : [start : end : step]

     

    예제 코드>>

    import numpy as np
    import random
    
    a_list = []
    for _ in range(10):
        a_list.append(random.randint(1,10))
    
    np_list = np.array(a_list)
    
    print("a_list : ", a_list)
    print("np_list : ", np_list)
    
    print("a_list[2:4:2] : ", a_list[2:4:2])
    print("np_list[2:4:2] : ", np_list[2:4:2])
    
    print("a_list[:4:2] : ", a_list[:4:2])
    print("np_list[4::2] : ", np_list[4::2])
    
    print("a_list[-5:-2:2] : ", a_list[-5:-2:2])
    print("np_list[-6:-3:2] : ", np_list[-6:-3:2])

     

    출력>>

    a_list :  [2, 7, 9, 2, 8, 8, 10, 4, 8, 4]
    np_list :  [ 2  7  9  2  8  8 10  4  8  4]
    a_list[2:4:2] :  [9]
    np_list[2:4:2] :  [9]
    a_list[:4:2] :  [2, 9]
    np_list[4::2] :  [ 8 10  8]
    a_list[-5:-2:2] :  [8, 4]
    np_list[-6:-3:2] :  [ 8 10]

    step 사이즈 만큼 이동해서 결과를 출력합니다. 

     

     

    반응형