NumPy Boolean Indexing과 Fancy Indexing
10 Jul 2025 | DA개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
Boolean Indexing?
배열에 조건을 걸어 True/False로 이루어진 배열을 반환
a = np.array([15, 0, 25, 8, 0, 40, 3, 12, 50, 0])
low_a = a < 10
low_a # > array([False, True, False, True, True, False, True, False, False, True])
이때 다양한 연산도 가능하다.
a = np.array([15, 0, 25, 8, 0, 40, 3, 12, 50, 0])
(a >= 10 )&(a < 30) # > array([ True, False, True, False, False, False, False, True, False, False])
(stock >= 10 )|(stock < 30) # > array([ True, True, True, True, True, True, True, True, True, True])
Fancy Indexing
인덱스가 담긴 배열을 사용해 원하는 위치의 원소들을 순서에 상관없이 추출
a = np.array([580, 220, 180, 150, 130, 160, 110, 450])
a_index = [0, 1, 7]
a_fancy = a[a_index] # > array([580, 220, 450])
where
추가로 공부하다가 where
함수랑 boolean indexing 개념이 살짝 헷갈려서 정리해본다.
where은 조건에 부합하는 인덱스를 반환해주는 함수이다. 예시를 들자면
a = np.arange(5,15)
# array([5,6,7,8,9,10,11,12,13,14])
np.where(a > 10)
# 11~14까지의 인덱스를 반환
# array([6,7,8,9]) > 인덱스를 반환해준거임!!
boolean indexing은 말그대로 boolean 값을 반환해주는 함수이다. 내가 어떤 조건을 걸면 그 조건에 만족하는 지 안하는 지에 대한 boolean 값을 반환해주는 것!
where은 조건에 부합하는 결과의 인덱스 값 반환!!