2. Numpy 배열 인덱싱
Python
2017. 8. 1. 16:16
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 |