본문 바로가기

Skill up/Programming

[python]numpy에서 표준분포로 random 수 생성

다차원 랜덤 배열 생성을 위해서 numpy를 이용.
numpy에서는 다양한 분포함수를 제공하고 있다. (http://docs.scipy.org/doc/numpy/reference/routines.random.html)
아래에 예로 적어놓은 standard_normal은 표준분포이다. 원하는 분포함수를 위 레퍼런스를 보고 결정하면 된다.

만들어지는 데이터의 타입은 <type 'builtin_function_or_method'>

일단 1차원의 경우에는
>>> from numpy import * 
>>> random.standard_normal(5)
array([ 0.19178306,  1.29379677,  0.38624875, -0.62396755,  0.88241794])

 
2차원의 경우에는
>>> from numpy import *  
>>> random.standard_normal((5,2))
array([[ 2.00956256, -1.32969429],
       [-0.62238168, -0.56509192],
       [-2.17746725, -2.08288055],
       [ 0.17182154, -0.4479634 ],
       [-1.09588045, -0.95563998]]) 


데이터의 일부를 가져오고 싶으면 그냥 변수에 값 할당하고, 원하는 위치만 던지면 된다.
>>> a = random.standard_normal((5,2))
>>> a[0] 
array([ 2.00956256, -1.32969429]) 
>>> a[0:2]
array([[ 0.35053976,  0.15419943],
       [-2.43975775,  0.38859348]])