Fancy Indexing이란?
: 주어진 배열 내에 여러 요소들에 대한 접근을 한번에할 수 있도록 해주는 방법이다.
[기존의 방식]
[Fancy Indexing]
이렇게 인덱스를 만들고 그 인덱스를 x의 인덱스에 넣어서 필요한 값만 가져오는 방식이다.
다차원에서의 Fancy Indexing
이렇게 배열 형태로 인덱스에 넣으면 배열 형태 그대로 배열의 요소들을 인덱싱해서 출력이 된다.
다차원에서의 Fancy Indexing - row, col
row의 요소 인덱스와 col의 요소 인덱스를 같이 인덱스로 넣을 수 있다.
차원이 다른 index인 경우 - 브로드캐스팅
np.newaxis이란?
NumPy에서 배열의 차원을 확장하는 데 사용하는 도구이다. 즉, 1차원 배열을 2차원 배열로, 2차원 배열을 3차원 배열로 변경하는 것이다.
[1, 2, 3]을 [[1] [2] [3]] 형태로 변경해주는 것이다.
위의 방식처럼 3x1의 row와 1x3 col을 인덱스로 넣으면 브로드 캐스팅이 발생해서 [설명]과 같이 인덱싱이 일어난다.
아래의 방식들도 브로드캐스팅을 통해서 인덱싱이 진행된 결과들이다.
Fancy Indexing에 Masking 적용하기
x[row[:, np.newaxis], mask]를 설명하면 모든 행에서 0열 2열을 출력하는 것이다.
Fancy Indexing을 통한 값 변경하기
주의할 점은 팬시 인덱싱을 통해서 값 변경시 인덱스가 중복된다면 마지막 인덱스에 할당된 연산만 적용된다!
'2학년 2학기 > 데이터 사이언스 입문' 카테고리의 다른 글
Sorting (0) | 2024.10.05 |
---|---|
Axis (0) | 2024.10.05 |
비교, 마스크, Bool 연산 (0) | 2024.10.05 |
Numpy - 브로드캐스팅 (0) | 2024.09.26 |
Numpy - Ufunc (1) | 2024.09.26 |