default_rng는 NumPy 버전 1.17부터 추가된 새로운 난수 생성기(Generator)이다. random.seed에 비해 다양한 난수분포를 가질 수 있고, 여러개의 난수를 관리하는 등 강력한 기능을 제공한다.
import numpy as np
# 새로운 난수 생성기 생성
rng = np.random.default_rng()
# 0 이상 1 미만의 난수 생성 (균일 분포)
random_number = rng.random()
print("Random number:", random_number)
# 정규 분포를 따르는 난수 생성
normal_random_number = rng.normal(loc=0, scale=1)
print("Normal random number:", normal_random_number)
rng1 = np.random.default_rng()
rng1.random()
#출력 : 0.6596288841243357 # may vary
rng2 = np.random.default_rng()
rng2.random()
#출력 : 0.11885628817151628 # may vary
import secrets
import numpy as np
secrets.randbits(128)
#출력 : 122807528840384100672342137672332424406 # may vary
rng1 = np.random.default_rng(122807528840384100672342137672332424406)
rng1.random()
#출력 : 0.5363922081269535
rng2 = np.random.default_rng(122807528840384100672342137672332424406)
rng2.random()
#출력 : 0.5363922081269535