더북(TheBook)

seed

컴퓨터가 무작위 수를 만든 모습을 살펴보면, 아무런 규칙 없이 무작위로 만든 것 같지만 사실 특정한 알고리즘에 의해서 만든 것입니다. 즉, 일정한 기준이 있다고 볼 수 있죠. 그러므로 우리는 무작위 수를 생성하지만 어떤 수를 생성할 것인지 예측할 수도 있습니다. 그 기준을 정해 주는 것이 바로 seed() 함수입니다. 이 함수의 이름(seed)을 직역하면 씨앗으로, 랜덤한 값을 만드는 근본이 된다고 생각하면 됩니다.

print(np.random.rand(3))     # 랜덤한 숫자 3개를 출력합니다.
print(np.random.rand(3))     # 랜덤한 숫자 3개를 출력합니다.

실행 결과

[0.77038256 0.94313997 0.19435926]
[0.58487229 0.6477384 0.65207554]

이와 같이 같은 코드를 넣었지만 서로 다른 값이 나오는 것을 볼 수 있습니다. 하지만 seed() 함수를 사용하여 기준을 정해 주면 다음과 같이 같은 수가 나오는 것을 볼 수 있습니다.

np.random.seed(0)            # seed() 함수에 특정한 숫자를 넣어서 기준을 정합니다.
print(np.random.rand(3))     # 무작위 숫자 3개를 출력합니다.
np.random.seed(0)            # seed() 함수를 사용하여 기준을 앞과 동일하게 정합니다.
print(np.random.rand(3))     # 무작위 숫자 3개를 출력합니다.

실행 결과

[0.5488135 0.71518937 0.60276338]
[0.5488135 0.71518937 0.60276338]

이와 같이 seed() 함수를 사용하면 동일한 무작위 수를 만들 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.