성인/미성년 판별하기 : np.where()

30 P
QUESTION 07 #305
넘파이 배열의 요소, 즉 나이가 19 이상이면 '성인'으로, 그렇지 않으면 '미성년'으로 하려고 합니다. 빈칸을 채워보세요.
main.py
import numpy as np

ages = np.array([15, 22, 18, 30, 12])

# 19세 이상이면 '성인', 아니면 '미성년'으로 분류하기
# 사용법: np.where(조건, 참일_때_값, 거짓일_때_값)
status = np.(ages >= 19, '성인', '미성년')

print("결과:", status)
실행 결과 예시
결과: ['미성년' '성인' '미성년' '성인' '미성년']
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

np.where() - 조건에 따라 값 선택하기

np.where()는 조건에 따라 서로 다른 값을 배열에 적용하는 함수입니다. 엑셀의 IF 함수와 비슷합니다.

기본 문법

np.where(조건, 참일_때_값, 거짓일_때_값)

동작 과정

ages = np.array([15, 22, 18, 30, 12])
status = np.where(ages >= 19, '성인', '미성년')
인덱스 나이 ages >= 19 결과
0 15 False 미성년
1 22 True 성인
2 18 False 미성년
3 30 True 성인
4 12 False 미성년

결과: ['미성년', '성인', '미성년', '성인', '미성년']

반복문과 비교

# 반복문 방식 (느림)
result = []
for age in ages:
    if age >= 19:
        result.append('성인')
    else:
        result.append('미성년')

# np.where 방식 (빠르고 간결)
result = np.where(ages >= 19, '성인', '미성년')

다양한 활용 예시

# 합격/불합격 판정
np.where(score >= 60, '합격', '불합격')

# 양수/음수 판별
np.where(arr > 0, '양수', '음수')

💡 핵심: np.where()는 반복문 없이 배열 전체에 조건 분기를 적용합니다.