Shonny Data

[Python] NUMPY 난수 생성(Random 모듈) 본문

Sparta_coding_club/Python

[Python] NUMPY 난수 생성(Random 모듈)

데이터분석쇼니 2024. 1. 29. 13:14

 

|  Numpy 의 random 모듈 

  • 랜덤 모듈은 다양한 함수를 사용해서 특정 범위, 개수, 형태를 갖는 난수 생성에 활용
    • random.rand( )
    • random.randint( )
    • random.randn( )
    • random.standard_narlmal( )
    • random.normal( )
    • random.random_sample( )
    • random.choice( )
    • random.seed( )

 


■ random.rand ( )

  • 주어진 숫자만큼 난수 어레이를 생성하는 함수 
import numpy as np

a = np.random.rand(5)
#  [0.41626628 0.40269923 0.80574938 0.67014962 0.47630372]


b = np.random.rand(2, 3)
#  [[0.83739956 0.62462355 0.66043459]
#  [0.96358531 0.23121274 0.68940178]]

 

■ random.randint( )

  • 최소값, 최대값의 범위에서 임의의 정수를 만드는 함수 
import numpy as np

a = np.random.randint(2, size=5)
# 0 0 0 0 0 
# 숫자 2보다 작은 정수 5개 생성

b = np.random.randint(2, 4, size=5)
# 3 3 2 2 3 
# 숫자 2보다 크고 4보다 작은 정수 5개 생성

c = np.random.randint(1, 5, size=(2, 3))
# [[3 2 4] [2 2 2]]
# 숫자 1보다 크고 5보다 작은 함수 3개씩 2묶음

 

■ random.randn( )

  • 표준정규분포 로 부터 샘플링된 난수를 반환
    import numpy as np
    
    a = np.random.randn(5)
    # [ 0.06704336 -0.48813686  0.4275107  -0.9015714  -1.30597604]
    
    
    b = np.random.randn(2, 3)
    # [[ 0.87354043  0.03783873  0.77153503]
    # [-0.35765934  2.11477207  1.28474164]]
     

 

■ random.sample( )

  • 정규분포 로 부터 샘플링된 난수를 반환
    import numpy as np
    
    a = np.random.normal(0, 1, 2)
    #  [-0.66144234  2.52980783]
    
    
    b = np.random.normal(1.5, 1.5, 4)
    #  [2.96297363 1.71391993 1.61165712 3.57817189]
    
    
    c = np.random.normal(3.0, 2.0, (2, 3))
    #  [[3.28846179 5.14251661 4.31800249]
    #   [4.79395804 1.59956438 4.46791867]]
     

 

■ random.choice( )

  • 주어진 1차원 어레이로부터 임의의 샘플 생성 
import numpy as np

a = np.random.choice(5, 3)
# [4 0 2]
# 5보다 작은 숫자 중 3개

b = np.random.choice(10, (2, 3))
#  [[0 2 1]
#   [4 7 2]]
# 10보다 작은 숫자중 3개씩 2묶음

 

■ random.seed( )

  • 난수 생성에 필요한 시드를 설정하는 함수 
import numpy as np

np.random.seed(0)

print(np.random.rand(2, 3))


# [[0.5488135  0.71518937 0.60276338]
# [0.54488318 0.4236548  0.64589411]]