python

[numpy] 1차원 배열 | 랜덤 함수

전감자(◔◡◔) 2022. 9. 28. 18:24
'''
    랜덤값 이용
    np.random.함수명() 형식
'''

import numpy as np


print(dir(np.random))
'''
['BitGenerator', 'Generator', 'MT19937', 'PCG64', 'PCG64DXSM', 'Philox', 'RandomState', 
'SFC64', 'SeedSequence', '__RandomState_ctor', '__all__', '__builtins__', '__cached__', 
'__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_bounded_integers', 
'_common', '_generator', '_mt19937', '_pcg64', '_philox', '_pickle', '_sfc64', 
'beta', 'binomial', 'bit_generator', 'bytes', 'chisquare', 'choice', 'default_rng', 
'dirichlet', 'exponential', 'f', 'gamma', 'geometric', 'get_state', 'gumbel', 'hypergeometric', 
'laplace', 'logistic', 'lognormal', 'logseries', 'mtrand', 'multinomial', 'multivariate_normal', 
'negative_binomial', 'noncentral_chisquare', 'noncentral_f', 'normal', 'pareto', 'permutation', 
'poisson', 'power', 'rand', 'randint', 'randn', 'random', 'random_integers', 'random_sample', 
'ranf', 'rayleigh', 'sample', 'seed', 'set_state', 'shuffle', 'standard_cauchy', 'standard_exponential', 
'standard_gamma', 'standard_normal', 'standard_t', 'test', 'triangular', 'uniform', 'vonmises', 'wald', 
'weibull', 'zipf']
'''
# np.random.seed(1234)
# 1. np.random.random() , 0.0 <= < 1.0 , [0.0, 1.0)
print("1. np.random.random()")
print(np.random.random()) # 0.1915194503788923
print("2. np.random.random(갯수)")
print(np.random.random(5)) # [0.62210877 0.43772774 0.78535858 0.77997581 0.27259261]
print()
# 2. np.random.rand(), 균등분포에서 랜덤값 추출
print("3. np.random.rand([갯수])")
print(np.random.rand()) # 0.2764642551430967
print(np.random.rand(5)) # [0.80187218 0.95813935 0.87593263 0.35781727 0.50099513]
print()
# 2. np.random.randn(), 정규분포( 평균값이 0이고 표준편차 1 )랜덤값 추출
print("4. np.random.randn([갯수])")
print(np.random.randn()) # 1.150035724719818
print(np.random.randn(5)) # [ 0.99194602  0.95332413 -2.02125482 -0.33407737  0.00211836]
print()
# 2. np.random.randint(), 정규분포( 평균값이 0이고 표준편차 1 )랜덤값 추출
print("4. np.random.randint([갯수])")
print(np.random.randint(2, size=5)) #  0 ~ 최대2범위(exclusive)안에서 5개의 정수 반환
print(np.random.randint(1, 10, size=5)) # 1 ~ 10 사이의 정수값중에서 5개를 래덤하게 반환( 중복추출 가능 )
print()
# 2. np.random.choice()
print("4. np.random.choice(리스트)") # 지정된 리스트에서 랜덤값 추출 (중복추출 가능)
print(np.random.choice([3,6,8,9])) # size 미지정시 값 하나 반환
print(np.random.choice([3,6,8,9], size=2)) # size 지정시 갯수만큼 반환
print(np.random.choice([3,6,8,9], size=2, replace=False)) # replace=False 지정시 중복추출 방지

print()
# 2. np.random.shuffle(),  in-place=True 기본(자신이 변경됨)
print("4. np.random.shuffle(리스트)")
x = [1,2,3,4,5]
np.random.shuffle(x)
print(x)