본문 바로가기
● 인공지능, 분석/21.07 코드잇_DS과정

2-2. Numpy 실전 | numpy array에 곱셉연산. Boolean연산

by 0ver-grow 2021. 5. 29.
반응형

Q.1 >신주쿠 흥부부대찌개

엔화(¥)로 저장한 매출 데이터를 원화(₩)로 변환하는 작업이 필요.

엔화 매출이 담겨 있는 파이썬 리스트가 주어짐.

1엔에 10.08원이라고 가정하고, 원화 매출이 담긴 numpy array를 만들어 출력할 것.

 

기본 코드는 다음과 같다.

import numpy as np

revenue_in_yen = [
    300000, 340000, 320000, 360000, 
    440000, 140000, 180000, 340000, 
    330000, 290000, 280000, 380000, 
    170000, 140000, 230000, 390000, 
    400000, 350000, 380000, 150000, 
    110000, 240000, 380000, 380000, 
    340000, 420000, 150000, 130000, 
    360000, 320000, 250000
]

어떻게 10.08원을 곱해줄것인가?

정답.

arr = np.array(revenue_in_yen)
arr * 10.08

 

Q.2 > 흥부부대찌개 LA 진출

1엔에 10.08원, 1달러에 1138원

두 지점의 매출의 합이 원화로 담긴 numpy array를 만들어 출력

 

기본 코드

import numpy as np

revenue_in_yen = [
    300000, 340000, 320000, 360000, 
    440000, 140000, 180000, 340000, 
    330000, 290000, 280000, 380000, 
    170000, 140000, 230000, 390000, 
    400000, 350000, 380000, 150000, 
    110000, 240000, 380000, 380000, 
    340000, 420000, 150000, 130000, 
    360000, 320000, 250000
]

revenue_in_dollar = [
    1200, 1600, 1400, 1300, 
    2100, 1400, 1500, 2100, 
    1500, 1500, 2300, 2100, 
    2800, 2600, 1700, 1400, 
    2100, 2300, 1600, 1800, 
    2200, 2400, 2100, 2800, 
    1900, 2100, 1800, 2200, 
    2100, 1600, 1800
]

이를 환율 값을 어떻게 곱해주면 될까?

리스트에 있는 모든 값에 곱셈을 동시에 해주기 위해, 엔화 데이터 revenue_in_yen와 달러 데이터 revenue_in_dollar 모두 numpy array로 만들어 줍시다.

yen_array = np.array(revenue_in_yen)
dollar_array = np.array(revenue_in_dollar)

정답

won_array = yen_array * 10.08 + dollar_array * 1138
won_array # 정답 출력


Q.3 >
흥부부대찌개 목표 일 매출

문제 : 영훈이가 생각하는 성공적인 하루 매출은 20만 엔입니다.

성공적이지 않은 날의 매출만 골라서 보고 싶습니다. 20만 엔 이하의 매출만 담긴 numpy array를 출력해주세요. 반복문은 사용하면 안 됩니다!

주의: 자동 채점 과제입니다. 정답 출력 코드는 print 없이 작성해 주세요. (예시: bad_days_revenue)

 

기존 코드

import numpy as np

revenue_in_yen = [
    300000, 340000, 320000, 360000, 
    440000, 140000, 180000, 340000, 
    330000, 290000, 280000, 380000, 
    170000, 140000, 230000, 390000, 
    400000, 350000, 380000, 150000, 
    110000, 240000, 380000, 380000, 
    340000, 420000, 150000, 130000, 
    360000, 320000, 250000
]

풀이1

# 1단계 : numpy array 만들기
yen_array = np.array(revenue_in_yen) # numpy의 도움을 받기 위해서는 numpy array로 만들기

# 2단계 : 조건만족하는 인덱스만 뽑기
filter = np.where(yen_array <= 200000)
filter

# 3단계 : filter를 인덱싱에 활용
bad_days_revenue = yen_array[filter]

bad_days_revenue # 정답 출력

풀이2 : 아래와 같이 where 메소드로 filter를 만들지 않고 바로 인덱싱하는 방법

yen_array = np.array(revenue_in_yen)

bad_days_revenue = yen_array[yen_array <= 200000]

bad_days_revenue # 정답 출력

 

반응형