1 이상 100 이하의 자연수(수나 순서를 셀 때 쓰는 1, 2, 3 과 같은 수) 중 3의 배수만 담겨 있는 numpy array를 생성하고 출력해 주세요.
import numpy as np
arr = np.arange(1, 101)[np.arange(1, 101) % 3 == 0]
arr

일본에는 한식 열풍이 불고 있습니다. 기회를 엿본 영훈이는 대기업을 퇴사하고 신주쿠에 프랜차이즈 ‘흥부부대찌개’ 가맹점을 냈습니다.
그러나 보수적인 아버지께서는 번듯한 직장을 박차고 나온 영훈이가 못마땅합니다. 아버지를 안심시켜 드리기 위해 매달 매출을 보고하려고 하는데요. 엔화(¥)로 저장한 매출 데이터를 원화(₩)로 변환하는 작업이 필요합니다.
마침 numpy를 배운 우리가 도와줄 수 있겠네요. 엔화 매출이 담겨 있는 파이썬 리스트가 주어졌습니다. 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
]
won_array = np.array(revenue_in_yen) * 10.08
won_array

흥부부대찌개 신주쿠점의 흥행에 성공한 영훈이는 여세를 몰아 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
]
won_array = np.array(revenue_in_yen) * 10.08 + np.array(revenue_in_dollar) * 1138
won_array

영훈이가 창업한 흥부부대찌개 신주쿠점은 이제 직장인들에게 소문난 맛집입니다. 그러나 매일같이 성공적인 것은 아닙니다. 목표 일 매출을 달성하지 못하는 날들이 아직 꽤 있거든요. 영훈이가 생각하는 성공적인 하루 매출은 20만 엔입니다.
성공적이지 않은 날의 매출만 골라서 보고 싶습니다. 20만 엔 이하의 매출만 담긴 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_yen = np.array(revenue_in_yen)
filter = np.where(revenue_in_yen < 200000)
bad_days_revenue = revenue_in_yen[filter]
bad_days_revenue

numpy 라이브러리는 기본적인 통계 기능도 제공합니다.
최댓값, 최솟값
max 메소드와 min 메소드를 사용하면 numpy array의 최댓값과 최솟값을 구할 수 있습니다.
import numpy as np
array1 = np.array([14, 6, 13, 21, 23, 31, 9, 5])
print(array1.max()) # 최댓값
print(array1.min()) # 최솟값
>> 31, 5
평균값
mean 메소드를 사용하면 numpy array의 평균값을 구할 수 있습니다.
import numpy as np
array1 = np.array([14, 6, 13, 21, 23, 31, 9, 5])
print(array1.mean()) # 평균값
>> 15.25
중앙값
median 메소드를 사용하면 중간값을 구할 수 있는데요. 특이하게 median은 numpy array의 메소드가 아니라 numpy의 메소드입니다.
import numpy as np
array1 = np.array([8, 12, 9, 15, 16])
array2 = np.array([14, 6, 13, 21, 23, 31, 9, 5])
print(np.median(array1)) # 중앙값
print(np.median(array2)) # 중앙값
>> 12.0 13.5
표준 편차, 분산
표준 편차와 분산은 값들이 평균에서 얼마나 떨어져 있는지 나타내는 지표입니다. 잘 모르신다면 일단 넘어가셔도 좋습니다.
import numpy as np
array1 = np.array([14, 6, 13, 21, 23, 31, 9, 5])
print(array1.std()) # 표준 편차
print(array1.var()) # 분산
>> 8.496322733983215 72.1875