수색…


소개

NumPy의 random 모듈은 원하는 모양과 분포를 갖는 무작위 데이터를 생성하는 편리한 방법을 제공합니다.

다음은 공식 문서 입니다.

간단한 랜덤 배열 만들기

# Generates 5 random numbers from a uniform distribution [0, 1)
np.random.rand(5)
# Out: array([ 0.4071833 ,  0.069167  ,  0.69742877,  0.45354268,  0.7220556 ])

씨를 놓기

random.seed 사용 :

np.random.seed(0)
np.random.rand(5)
# Out: array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318,  0.4236548 ])

난수 생성기 객체를 생성함으로써 :

prng = np.random.RandomState(0)
prng.rand(5)
# Out: array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318,  0.4236548 ])

임의의 정수 만들기

# Creates a 5x5 random integer array ranging from 10 (inclusive) to 20 (inclusive)
np.random.randint(10, 20, (5, 5))

''' 
Out: array([[12, 14, 17, 16, 18],
            [18, 11, 16, 17, 17],
            [18, 11, 15, 19, 18],
            [19, 14, 13, 10, 13],
            [15, 10, 12, 13, 18]])
'''

배열에서 무작위 샘플 선택하기

letters = list('abcde')

세 문자를 무작위로 선택하십시오 ( 대체 - 같은 항목을 여러 번 선택할 수 있음).

np.random.choice(letters, 3)
''' 
Out: array(['e', 'e', 'd'], 
      dtype='<U1')
'''

대체하지 않고 샘플링 :

np.random.choice(letters, 3, replace=False)
''' 
Out: array(['a', 'c', 'd'], 
      dtype='<U1')
'''

각 문자에 확률을 할당하십시오.

# Choses 'a' with 40% chance, 'b' with 30% and the remaining ones with 10% each
np.random.choice(letters, size=10, p=[0.4, 0.3, 0.1, 0.1, 0.1])

'''
Out: array(['a', 'b', 'e', 'b', 'a', 'b', 'b', 'c', 'a', 'b'],
  dtype='<U1')
'''

특정 분포에서 추출한 난수 생성하기

정상 (가우시안) 분포의 샘플 그리기

# Generate 5 random numbers from a standard normal distribution
# (mean = 0, standard deviation = 1)
np.random.randn(5) 
# Out: array([-0.84423086,  0.70564081, -0.39878617, -0.82719653, -0.4157447 ])

# This result can also be achieved with the more general np.random.normal
np.random.normal(0, 1, 5)
# Out: array([-0.84423086,  0.70564081, -0.39878617, -0.82719653, -0.4157447 ])

# Specify the distribution's parameters
# Generate 5 random numbers drawn from a normal distribution with mean=70, std=10
np.random.normal(70, 10, 5)
# Out: array([ 72.06498837,  65.43118674,  59.40024236,  76.14957316,  84.29660766])

numpy.random 에는 몇 가지 추가 배포본이 있습니다 (예 : poisson , binomiallogistic

np.random.poisson(2.5, 5)  # 5 numbers, lambda=5
# Out: array([0, 2, 4, 3, 5])

np.random.binomial(4, 0.3, 5)  # 5 numbers, n=4, p=0.3
# Out: array([1, 0, 2, 1, 0])

np.random.logistic(2.3, 1.2, 5)  # 5 numbers, location=2.3, scale=1.2
# Out: array([ 1.23471936,  2.28598718, -0.81045893,  2.2474899 ,  4.15836878])


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow