Menu
CoddyTech

난수

Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 18번째.

시뮬레이션, 섞은 데이터, 학습되지 않은 모델은 모두 난수에서 시작합니다. 이렇게 만들어 낸 키 1,000개는 한 줄로 만들었습니다:

종 모양을 띠는 키 1,000개의 히스토그램으로, 평균인 170cm 부근에서 가장 높고 140cm와 200cm를 향해 갈수록 낮아집니다

NumPy는 시드로 시작되는 생성기에서 난수를 추출합니다:

rng = np.random.default_rng(42)
heights = rng.normal(170, 10, size=1000)
print(np.round(heights[:4], 1))
print(rng.integers(1, 7, size=5))
print(np.round(rng.random(3), 2))

다음과 같이 출력됩니다:

[173.  159.6 177.5 179.4]
[2 4 3 3 5]
[0.44 0.13 0.09]

normal(mean, std, size)는 평균 주변에 값이 모입니다. integers는 range처럼 stop 값을 제외합니다. random은 0부터 1까지의 소수를 반환합니다.

같은 시드는 어떤 컴퓨터에서든 같은 숫자를 생성하므로 누구나 실험을 반복할 수 있습니다. 숫자를 뽑을 때마다 생성기의 상태가 다음으로 이동합니다.

challenge icon

챌린지

쉬움

상점은 재실행 시 반복해야 하는 한 주를 시뮬레이션합니다.

  1. 시드로 rng_a를 만들고 고객 수를 7개 뽑으세요(20부터 60까지 포함). 그런 다음 정규분포를 따르는 지출액을 7개 뽑으세요: 평균 15, 표준편차 4.
  2. 같은 시드를 사용하는 rng_b와 시드에 1을 더한 값을 사용하는 rng_c에서 고객 수를 다시 뽑으세요.
  3. 아래와 같이 출력하세요. 지출액은 소수점 1자리까지 출력하고, b와 c가 a와 일치하는 날짜 수를 출력하세요.

시드가 12일 때:

Customers: [45 30 59 58 22 27 28]
Spend: [21.5 10.2 12.5  9.7 14.6 19.  14.9]
Same seed, days that match: 7
Seed + 1, days that match: 1

직접 해보기

import numpy as np

seed = int(input())

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

데이터와 시각화의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러