Numpy | random 함수 사용법, 예시
넘파이 라이브러리를 활용해 난수 생성하기 (랜덤한 정수, 0~1사이, 정규분포)
import numpy as np
numpy.random 쓰는 방법을 자꾸 까먹어서,,, 적어 놔야지.
랜덤한 int 생성하기
numpy.random.randint를 사용하여 임의의 정수 array를 만들 수 있다.
random.randint(low, high, size, dtype)
[low, high)
범위의 int 생성, discrete uniform distribution1 기반- 필수 파라미터:
low
- 파라미터
high
를 명시하지 않은 경우 [0, low) 범위의 int 생성 - 파라미터
size
를 명시하지 않은 경우 single int 생성
randint() 예시
import numpy as np
np.random.randint(5) # 0~4까지 랜덤 정수 1개 생성
### >>> 0
np.random.randint(5, size=4) # 0~4까지 랜덤 정수, 길이가 4인 array 생성
### >>> array([4, 1, 4, 3])
np.random.randint(5, size=(2, 3)) # 0~4까지 랜덤 정수, 크기가 (2, 3)인 2차원 array 생성
### >>> array([[2, 1, 3],
### >>> [4, 1, 0]])
np.random.randint(1, 11, size=6) # 1~10까지 랜덤 정수, 길이가 6인 array 생성
### >>> array([3, 5, 2, 8, 6, 8])
0 ~ 1 사이의 랜덤한 난수 생성하기
numpy.random.rand를 활용하여 0~1 범위의 랜덤한 실수 array 생성
random.rand(d0, d1, …, dn)
[0, 1)
범위의 난수 생성numpy.zeros
혹은numpy.ones
를 사용해서 0과 1로 초기화된 특정 크기의 array를 만드는 것처럼, 랜덤한 샘플 array를 생성할 때 자주 쓰인다.- 파라미터로 dimension, 즉 array 크기만 지정
rand() 예시
import numpy as np
np.random.rand(3) # 1x3 array
### >>> array([0.88843017, 0.08603825, 0.574518 ])
np.random.rand(2, 4) # 2x4 array
### >>> array([[0.97885576, 0.78156378, 0.74111103, 0.38431599],
### >>> [0.51179429, 0.43498217, 0.4356467 , 0.86757286]])
표준 정규 분포를 따르는 난수 생성하기
numpy.random.randn를 활용하여 표준 정규분포 (standard normal distribution)을 따르는 난수 생성
random.randn(d0, d1, … , dn)
standard normal distribution
: 평균이 0, 표준 편차가 1인 표준 정규 분포를 따름- 파라미터로 dimension 만 지정
import numpy as np
np.random.randn()
### >>> 2.1923875335537315 # random
np.random.randn(2, 3)
### >>> array([[ 0.67294205, -0.65654402, -1.21734529],
### >>> [-1.32495713, -1.01700438, -0.13663216]])
정규 분포를 따르는 난수 생성하기
numpy.random.normal를 활용하여 평균과 표준 편차를 지정한 정규 분포에서의 난수 생성
random.normal(loc, scale, size)
import numpy as np
s = np.random.normal(0, 0.1, 5)
### >>> array([-0.00212207, 0.1124257 , -0.09070432, 0.01982677, -0.17008441])
Reference
- https://numpy.org/doc/stable/reference/random/generator.html
- https://numpy.org/doc/stable/reference/random/generated/numpy.random.rand.html
- https://reniew.github.io/13/