본문 바로가기
파이썬/통계분석

[파이썬 강의] 77. 표본추출 (균등분포)

by 만다린망고 2021. 11. 2.
반응형

0~1사이 실수값을 갖는 균등분포에서 표본을 추출해봅시다. 코드는 아래와 같은 형식으로 사용합니다. 


np.random.rand(원소 수)
np.random.rand(행의 수, 열의 수)

...

 

일반화하여 표현하면 아래와 같습니다. 

 

np.random.rand(shape)


예를 들어봅시다. 원소가 10개인 표본을 추출해봅시다. 

>>> np.random.rand(10)
array([0.93551792, 0.67158859, 0.66331052, 0.87592483, 0.56564499,
       0.14275756, 0.22003448, 0.01317308, 0.82143447, 0.71668732])


2행5열의 표본을 추출해봅시다. 위 결과와 얼핏 같아 보이지만 아닙니다. 아래 결과는 리스트가 2중 중첩입니다. 

>>> np.random.rand(2,5)
array([[0.22874261, 0.89332856, 0.07501238, 0.89202538, 0.74444056],
       [0.10593405, 0.60327562, 0.19732932, 0.34594971, 0.62150763]])


만약 구간을 바꾸고 싶다면 어떻게하면 될까요? 예를들어 0~5인 구간에서 추출하고 싶다면? 결과에 5를 곱하면 됩니다. 0~5 구간에서 원소가 10개인 표본을 추출해봅시다. 

>>> 5*np.random.rand(10)
array([1.76514668, 2.20233808, 4.23007872, 3.33159633, 4.95870733,
       1.47002592, 3.03737072, 0.09507972, 3.09364668, 1.47709621])


구간을 shift 하는 것도 가능합니다. 2~5사이 표본을 뽑고 싶다면, 3을 곱하고 2를 더해주면 됩니다. 

 

>>> 3*np.random.rand(10)+2
array([2.13510051, 4.91615205, 4.38943247, 3.93024468, 3.85522385,
       4.67402829, 4.50678773, 2.85626503, 2.71784915, 2.08469135])
반응형

댓글