일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Inductive Bias
- 연산량 감소
- 1x1 Convolution
- 백준
- SQLD 후기
- 데이터모델링
- outer join
- feature map
- Two Pointer
- pytorch
- depthwise convolution
- skip connection
- bottleneck
- 인접행렬
- resnet
- 엔터티
- 정규화
- CROSS JOIN
- SQLD
- BFS
- mobilenet
- 식별자
- 인접리스트
- Depthwise Separable Convolution
- dfs
- 그래프
- numpy
- get_dummies()
- SQL
- dp
- Today
- Total
SJ_Koding
Numpy 인덱싱(정수 인덱싱, 조건 인덱싱, 팬시 인덱싱) 본문
안녕하세요, 성지코딩입니다!
이번 게시글은 Numpy 인덱싱에 대해 알아봅니다. Index는 행렬, 배열, 리스트 등에서 특정 요소를 빠르게 참조할 수 있습니다.
Numpy Array Indexing
- 리스트 혹은 다른 언어에서의 배열같은 경우 일반적으로 정수 값을 사용하고 정수는 특정 요소의 위치(순서)를 의미합니다.
- 파이썬에서 시퀀스 자료형에서 사용한 것과 동일하게 대괄호([])를 사용하여 특정 요소에 접근이 가능합니다.
- 기존 파이썬의 시퀀스 자료형에는 차원에 따라 대괄호를 여러번 사용 했지만 Numpy 에서 대괄호는 한 번만 사용됩니다. 단 차원의 구분자로 ,를 사용합니다.
예) 2차원 리스트에서 데이터 접근: list[0][1]
예) 2차원 Numpy Array에서 데이터 접근 : array[0, 1] - Numpy의 경우 정수 인덱싱, 조건 인덱싱, 팬시(Fancy) 인덱싱을 지원합니다.
정수 인덱싱
접근하고자 하는 요소의 위치(인덱스)를 이용하여 데이터에 접근합니다.
인덱스의 시작은 0이며 마지막의 경우 -1로 접근이 가능합니다. ( [행 인덱스, 열 인덱스, ···] )
import numpy as np
array = np.arange(9).reshape(3, 3)
print('array:', array)
print('array[0]:', array[0])
print('array[-1]:', array[-1])
print('array[0, 0]:', array[0, 0])
print('array[-1, -1]:', array[-1, -1])
array: [[0 1 2]
[3 4 5]
[6 7 8]]
array[0]: [0 1 2]
array[-1]: [6, 7, 8]
array[0, 0]: 0
array[-1, -1]: 8
⬇ np.arange에 대하여 알아보기
https://sjkoding.tistory.com/2
⬇ reshape에 대해 알아보기
https://sjkoding.tistory.com/4
조건 인덱싱 (Boolean Indexing)
- Boolean Array를 이용하여 인덱싱 하는 방법입니다.
- Boolean Array의 값이 True값을 가지는 위치를 value Array에서 선택합니다.
- Boolean Array가 Mask 처럼 동작합니다. - 조건 인덱싱의 결과는 항상 1차원 Array가 옵니다.
배열에 조건 비교를 하는 경우 BroadCast(Element Wise) 연산으로 인해 각 요소별 비교 결과(True, False)값을 가지게 됩니다.
https://sjkoding.tistory.com/5
위의 그림을 코드화 시켜보겠습니다.
array = np.arange(1, 10).reshape(3, 3)
bidx = array % 2 == 0
bidx
array([[False, True, False],
[ True, False, True],
[False, True, False]])
array[bidx]
array([2, 4, 6, 8])
* Boolean Array를 array의 인덱스로 넣어주면 (조건 인덱스를 넣어주면) 그 조건이 True인 원소들의 위치를 반환합니다
array[array > 5]
array([6, 7, 8, 9])
조건 인덱싱의 경우 추후 다뤄볼 pandas의 DataFrame에서 컬럼과 행을 추출하는데 있어 필수적으로 사용됩니다. 반드시 알아두셔야 하는 개념입니다! 조건 인덱싱 개념이 다시 나오게 된다면 더욱 자세하게 설명하겠습니다!
다음 게시글은 Numpy Slicing에 대해 다룹니다. 감사합니다.
-sjkoding-
'Data analysis > Numpy' 카테고리의 다른 글
Numpy 배열 저장과 불러오기 (1) | 2022.01.16 |
---|---|
Numpy의 연산, Broadcast(Element Wise) (0) | 2022.01.01 |
Numpy 배열 형태 변경(reshape)과 데이터 유형 변경 (dtype, astype) (1) | 2021.12.31 |
Numpy의 속성 (0) | 2021.12.31 |
Numpy의 개요와 생성 (1) | 2021.12.31 |