Python

파이썬 난수 생성하기 random( ), randint( ), uniform( )

K2ODING 2021. 11. 22. 19:32
728x90

 

Random number : 난수 생성하기

0.0 ~ 1.0 사이 난수 생성

import random
random. random() #무작위
0.16484440492267505

 

int 형의 난수를 얻는다.

import random
random. randint(1, 6) # 1과 6사이의 숫자 정수
1

 

float 형의 난수를 얻는다.

import random
random.uniform(1, 5) # 1과 5사이의 실수
3.69074105603006

 

똑같은 난수의 패턴이 나오도록 하는 방법.

  • 테스트를 수행했을 경우, 다른사람도 같은 프로그램을 돌려서 같은값이 나오는지 확인하는 경우
  • 딥러닝에서 weight 초기값 할당하는 데 많이 사용됨
random. seed(34)

random. randint(1000, 9999)
7693

 

정규분포에 해당하는 난수를 생성

import random
normal_variate = []

for i in range(1000):
    value = random. normalvariate(170, 10)
    normal_variate. append(value)
normal_variate
[179.90464621857996,
 175.63702921783633,
 171.50432359458452,
 171.79420649451566,
 177.59102291726802,
 172.3797048718312,
 176.17072493693468,
 171.16923598195353,
 177.83066549425288,
 186.17887281293602,
 170.62688693858567,
 160.21742441785625,
 153.81913095450162,
 178.9920166316947,
 171.58590437135481,
 189.02222716784783,
 177.2809435882542,
 170.37200861482012,
 171.35185036559898,
 170.89087161123024]

 

리스트나 집합 등에 저장되어 있는 값들을, 랜덤으로 뽑는 함수

noodle_list = ['너구리', '신라면', '진라면', '왕뚜껑', '오징어짬뽕']
random.choice(noodle_list)
'너구리'

 

요소들을 여러개 샘플로 뽑는 경우

random. sample(noodle_list, 2)
['너구리', '신라면']

 

요소들을 막 섞어서 저장한다. (원본리스트 자체가 변함)

noodle_list
['너구리', '신라면', '진라면', '왕뚜껑', '오징어짬뽕']

random.shuffle(noodle_list)
noodle_list
['왕뚜껑', '오징어짬뽕', '신라면', '진라면', '너구리']

 

원본 리스트는 변형없이 그대로 두고, 막 섞인 리스트를 얻어오고자 한다.

random. sample(noodle_list, len(noodle_list))
['오징어짬뽕', '왕뚜껑', '진라면', '너구리', '신라면']