Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python NumPy로 난수 생성하는 방법 총정리

NumPy 패키지의 random 모듈에는 다양한 형태의 난수를 생성할 수 있는 여러 함수가 포함되어 있습니다. 이 글에서는 가장 많이 사용되는 대표적인 난수 생성 함수들을 예제 코드와 함께 살펴보겠습니다.

numpy.random.rand()

지정한 형태(shape)의 배열을 생성하고, 각 요소를 0 이상 1 미만의 균일 분포(uniform distribution)를 따르는 난수 샘플로 채웁니다.

>>> import numpy as np
>>> np.random.rand(3,2)
array([[0.10339983, 0.54395499],
[0.31719352, 0.51220189],
[0.98935914, 0.8240609 ]])

numpy.random.randn()

표준 정규 분포(standard normal distribution), 즉 평균이 0이고 표준편차가 1인 분포에서 하나 이상의 샘플을 반환합니다.

>>> np.random.randn()
-0.6808986872330651

numpy.random.randint()

low(포함)부터 high(미포함) 범위 내에서 임의의 정수를 반환합니다. size 인자를 지정하면 해당 크기의 배열 형태로 난수 정수를 생성할 수 있습니다.

>>> np.random.randint(5, size=(2, 4))
array([[2, 4, 0, 4],
[3, 4, 1, 2]])

numpy.random.random()

[0.0, 1.0) 반개구간(half-open interval) 범위에서 임의의 부동소수점(float) 값을 반환합니다. 참고로 np.random.random_sample()과 동일하게 동작합니다.

>>> np.random.random_sample()
0.054638060174776126

마무리

이처럼 NumPy의 random 모듈은 균일 분포, 정규 분포, 정수 난수 등 목적에 맞는 다양한 난수 생성 기능을 제공합니다. 데이터 시뮬레이션, 머신러닝 초기화, 통계 분석 등 여러 분야에서 활용도가 높으니 상황에 맞는 함수를 선택해 사용하시기 바랍니다.