np.random 모듈로 난수 생성하기
이 강의와 후속 강의 내내 np.random 모듈을 자주 사용하게 될 거예요. 해커 통계가의 모자를 쓰고 있을 때는 RNG 인스턴스의 메서드를 다른 어떤 함수보다 더 자주 호출하게 될 수도 있습니다. 간단한 함수 rng.random()부터 시운전을 해볼게요. 이 함수는 0과 1 사이의 난수를 반환합니다. rng.random()을 몇 번 호출해 보면 0과 1 사이에서 값이 이리저리 바뀌는 것을 볼 수 있어요.
이번 연습에서는 0과 1 사이의 난수를 많이 생성한 다음, 그 결과의 히스토그램을 그려 보겠습니다. 숫자가 정말 무작위라면 히스토그램의 막대 높이는 모두 (거의) 비슷해야 합니다.
영상에서 Justin이 rng.random()에 키워드 인수 size=4를 넘겨 한 번에 난수 4개를 생성한 것을 보셨을 거예요. 이런 방식이 for 루프보다 효율적입니다. 하지만 이번 연습에서는 해커 통계의 핵심인 “실험을 여러 번 반복하기”를 직접 경험해 보도록 for 루프를 작성해 보겠습니다.
이 연습은 강의의 일부입니다
Python으로 하는 Statistical Thinking (파트 1)
연습 안내
- 시드
42로 난수 발생기rng를 생성하고 시드를 설정하세요. - 난수를 저장할 길이 100,000의 비어 있는 배열
random_numbers를 초기화하세요. 이때는 반드시np.empty(100000)을 사용하세요. range(100000)을 순회하는for루프를 작성하여rng.random()으로 난수 100,000개를 뽑고, 이를random_numbers배열에 저장하세요.random_numbers의 히스토그램을 그리세요. 여기서는 난수 발생기만 확인하면 되므로 축 라벨은 없어도 됩니다. 플롯을 확인하려면 Submit를 눌러 주세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Instantiate and seed the random number generator
# Initialize random numbers: random_numbers
random_numbers = ____
# Generate random numbers by looping over range(100000)
for i in ____:
random_numbers[i] = ____
# Plot a histogram
_ = plt.hist(____)
# Show the plot
plt.show()