-
넘파이 ( Numpy ) - 4Python Machine Learning/Numpy 2020. 7. 15. 17:43
인덱싱이란?
- 넘파이에서 ndarray 내의 일부 데이터 세트나 특정 데이터만을 선택할 수 있도록 하는 것을 말한다.
- 특정 데이터만 추출 : 원하는 위치의 인덱스 값을 지정하면 해당 위치의 데이터가 반환.
- 슬라이싱( slicing ) : 연속된 인덱스상의 ndarray를 추출하는 방식.
- 팬시 인덱싱( Fancy Indexing ): 일정한 인덱싱 집합을 리스트 또는 ndarray 형태로 지정해 해당 위치에 있는 데이터의 ndarray를 반환.
- 불린 인덱싱( Boolean Indexing ) : 특정 조건에 해당하는지 여부인 true/false 값 인덱싱 집합을 기반으로 true에 해당하는 인덱스 위치에 있는 데이터의 ndarray를 반환.
특정 데이터 추출
--> 데이터값이 1부터 9까지인 9개의 1차원 ndarray 생성
--> 인덱스는 0부터시작하기에 array1[2]는 3번째 인덱스 위치의 데이터 값을 의미하므로 데이터값 3을 의미.
--> 인덱스 -1은 맨 뒤의 데이터값을 의미, -2는 맨뒤에서 두 번째에 있는 데이터 값.
--> ndarray 내의 데이터값도 수정 가능.
--> 다차원 ndarray에서 단일 값 추출 가능.
--> 2차원 = axis 0 : 로우(행) 방향 axis 1 : 칼럼방향(열)
--> 3차원 = axis 0 : 로우 방향 axis 1 : 칼럼방향 axis 2 : 높이.
슬라이싱
--> ' : ' 기호를 이용해 연속 데이터를 슬라이싱해서 추출.
--> ' : ' 기호 앞에 시작 인덱스를 생략하면 자동으로 맨 처음 인덱스인 0으로 간주.
--> ' : ' 기호 뒤에 종료 인덱스를 생략하면 자동으로 맨 마지막 인덱스로 간주.
--> ' : '기호 앞/뒤에 시작/종료 인덱스를 생략하면 자동으로 맨 처음/맨 마지막 인덱스로 간주.
팬시 인덱싱
: 리스트나 ndarray로 인덱스 집합을 지정하면 해당 위치의 인덱스에 해당하는 ndarray를 반환하는 인덱싱 방식.
--> array2d[ [0,1],2 ] = ( 0,2 ), ( 1,2 ) => [ 3,6 ] 반환
--> array2d[ [0,2], 0:2 ] = ( ( 0,0 ), ( 0,1 ) ), ( ( 1,0 ), ( 1,1 ) )
=> [ [ 1,2 ], [ 4,5 ] ] 반환
--> 코드상 결과에서 [ [ 1, 2], [ 7, 8] ] 은 잘못된 출력.
[ [ 1,2 ], [ 4,5 ] ] 가 정상 출력.
불린 인덱싱
: 조건 필터링과 검색을 동시에 할 수 있기 때문에 자주 사용되는 인덱싱 방식.
--> ndarray 객체를 인덱싱을 지정하는 [ ] 내에 입력하면 false값은 무시하고 true 값이 있는 위치 인덱스 값으로 자동 변환해 해당하는 인덱스 위치의 데이터만 반환.
불린 인덱싱이 동작하는 단계
--> 1. array1d>5 와 같이 ndarray의 필터링 조건을 [ ] 안에 기재
--> 2. false 값은 무시하고 true 값에 해당하는 인덱스값만 저장 ( true값 자체인 1을 저장하는 것이 아니라 true값을 가진 인덱스를 저장한다는 것)
--> 3. 저장된 인덱스 데이터 세트로 ndarray 조회
'Python Machine Learning > Numpy' 카테고리의 다른 글
넘파이 ( Numpy ) - 5 (0) 2020.07.15 넘파이( Numpy ) - 3 (0) 2020.07.15 넘파이( Numpy ) - 2 (0) 2020.07.15 넘파이( Numpy ) - 1 (0) 2020.07.15