본문 바로가기

BLOG/파이썬 기초

[파이썬] 랜덤 난수 생성하기 - numpy : rand(), randn()

 

numpy 라이브러리를 사용하면 랜덤 난수를 생성할 수 있는데요, 이때 .random.randn() 또는 .random.rand() 함수를 사용하여 난수를 생성할 수 있습니다. 각 함수의 사용법과 차이는 아래 코드를 보면서 설명하도록 하겠습니다.

 

 

1. random.rand()

random.rand() 함수는 0과 1 사이의 난수를 발생시키는 함수로, 만약 5 x 3 배열의 난수로 이루어진 배열을 만들고 싶으면 다음과 같이 코드를 입력하면 됩니다.

 

import numpy as np
arr1 = np.random.rand(5,3)
print(arr1)

 

[[0.69317654 0.07164175 0.40273234]
 [0.87184723 0.91572746 0.45297751]
 [0.63078801 0.95808943 0.43216853]
 [0.84933618 0.82898113 0.83685901]
 [0.74633015 0.29245349 0.81461761]]

 

결과를 보면, 0과 1 사이의 난수가 생성되었음을 살펴볼 수 있습니다.

 

 

2. random.randn()

반면, random.randn() 함수도 난수를 발생시키는 함수인데요, rand() 함수와 다른 점이 있다면 randn() 함수는 평균이 0이고 표준편차가 1인 가우시안 정규분포를 따르는 -1 ~ +1 사이의 난수를 발생시킨다는 점입니다.

따라서 동일하게 5 x 3 배열의 난수를 생성해보도록 하겠습니다.

 

import numpy as np
arr2 = np.random.randn(5,3)
print(arr2)

 

[[ 0.74533126  0.32627868  1.01401968]
 [-2.23819678  0.81634155 -0.63746109]
 [-0.35872497 -0.21453309 -0.10910602]
 [-1.16372119 -0.15465335 -0.17903214]
 [-0.7609433   0.46559908 -0.29818325]]

 

마찬가지로 출력된 값을 보면 -1 ~ +1 사이의 난수가 발생되었음을 확인할 수 있습니다.