numpy - boolean indexing(넘파이 불리언 색인)

안녕하세요 jay입니다.
지난 시간에는 numpy의 기본을 다루었습니다.
이번 시간은 numpy의 boolean indexing에 대해 알아보겠습니다



Boolean indexing으로 array slicing

array를 하나 생성한 뒤,
boolean type을 이용하여 array를 slicing해보겠습니다.
import numpy as np

# 0~11 값을 얻고 이를 3x4 모양의 배열로 재구성한다
data = np.arange(12).reshape(3,4)
print(data)

#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]]

name = np.array(['kim', 'lee', 'park', 'kim']) # array 생성
print(name == 'kim') # [True False False  True]

# 배열 data에서 첫번째, 네번째 열만 얻는 방법
print(data[:, name == 'kim'])

#[[ 0  3]
# [ 4  7]
# [ 8 11]]

# 배열 data에서 'kim'(0번째, 3번째) 또는 'lee'(1번째)의 위치의 행만 얻는 방법
print(data[:, (name == 'kim') | (name == 'lee')]) # (전체 행 선택, 0번째 3번째 혹은 1번째 열 선택)

# [[ 0  1  3]
#  [ 4  5  7]
#  [ 8  9 11]]

댓글