2. Numpy 배열 인덱싱

    1. 슬라이싱

    파이썬의 리스트와 유사하게, Numpy 배열도 슬라이싱이 가능하다.


    1.1 일차원 배열에서의 슬라이싱

    import numpy as np
    
    arr= np.arange(10)
    #출력해보면 array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    
    arr[5]
    #배열은 0부터 시작하기때문에 6번째의 5가 선택된다.
    #출력 해보면 5
    
    arr[5:8]
    #5번째에서 8번째값 전까지를 슬라이싱하는 것
    #출력 array([5, 6, 7])
    
    arr[5:8] = 12
    # 5번째에서 8번째값 전까지에 12의 값을 넣는것
    # 출력해보면 array([ 0,  1,  2,  3,  4, 12, 12, 12,  8,  9])
    
    arr[:]
    # 슬라이스 할때 앞 뒤를 명시하지 않으면 전체를 출력
    
    arr[3:]
    #앞에만 명시할경우 명시된 값에서부터 끝까지 출력
    
    arr[:3]
    #뒤에만 명시될 경우 처음부터 명시된 값까지 출력
    
    
    


    1.2 2차원 배열에서의 슬라이싱


    행과 열이 생겼을 뿐이지 슬라이싱하는 방법은 위와 동일하다.


    import numpy as np
    
    data = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
    arr = np.array(data)
    #이차원 배열을 생성
    
    arr[2, :]
    # 2행의 모든 열의 값을 출력
    #출력 array([ 9, 10, 11, 12])
    
    arr[0:2, :]
    # 0행부터 2행전까지의 모든 열의 값을 출력
    #출력 array([[1, 2, 3, 4],
    #       [5, 6, 7, 8]])
    
    arr[:, 1:3]
    # 모든행의 1열부터 3행전까지의 값을 출력 
    #출력 array([[ 5,  6,  7,  8],
    #       [ 9, 10, 11, 12]])
    
    


    1.3 불리언 인덱싱


    배열 인덱싱을 통해 배열 속 요소를 취사 선택할 수 있다.

    특정 조건을 만족하는 요소만 선택하고자 할 때 자주 사용하게 된다.


    import numpy as np
    
    names = np.array(['A','B','C','D','E','F','G'])
    data = np.random.randn(7, 4)
    # names에 A~G까지의 문자 배열을 만들고
    # data에 랜덤한 값을 7행 4열로 만든다.
    
    names == 'A'
    # Numpy Array에 조건문을 달아보면
    #array([ True, False, False, False, False, False, False], dtype=bool)
    # 해당하는 조건에 True, 이외에는 False를 나타내는 불리언 배열이 나온다.
    
    data[names == 'A']
    # 이렇게 불리언 마스크를 적용하면, 위에서 7개중 첫번째만 True를 리턴했으니, data의 0행만 반환받게 된다.
    # 출력 array([첫행])
    
    data[(names == 'A') | (names == 'G')]
    # 논리 연산자를 사용하여 여러 행을 선택하는 것도 가능하다.
    #출력 array([[0행],[6행]])
    
    



    'Python' 카테고리의 다른 글

    5. Pandas 자료구조  (0) 2017.08.03
    4. Numpy를 이용한 데이터 분석  (0) 2017.08.03
    3. Numpy 함수  (0) 2017.08.02
    1. Numpy 배열의 생성과 연산  (0) 2017.08.01
    COMCBT에서 hwp를 받아오는 프로그램  (0) 2017.07.25
    Posted by Config