우노
[Python] random 모듈 정리 본문
random 모듈이란?
Python에서 난수(random number)를 구할 수 있는 모듈입니다.
일부 자주 사용할 것 같은 함수들만 소개하겠습니다.
random 모듈은 import random 한 뒤, random.함수이름() 을 통해 random 모듈에 존재하는 함수들을 가져와 사용할 수 있습니다.
import random
random.random()
(0.0 <= x < 1.0) 범위의 랜덤한 실수(float)를 반환합니다.
x = random.random() print(x) # 0.00000~0.999999...
random.uniform(a,b)
( a <= x <= b ) 범위의 랜덤한 실수(float)를 반환합니다.
x = random.random(10, 20) print(x) # 10.00000 <= x <= 20.00000
random.randrange(a,b)
( a <= x < b ) 범위의 랜덤한 정수(int)를 반환합니다.
x1 = random.randrange(10, 20) print(x1) # 10 <= x < 20
random.randint(a,b)
(a <= x <= b) 범위의 랜덤한 정수(int)를 반환합니다.
x = random.randint(10, 20) print(x) # 10 <= x <= 20
random.shuffle(seq)
random.shuffle(seq) 함수는 순서형 자료(sequence)를 뒤죽박죽으로 섞어놓는 함수입니다.
random.suffle(seq) 의 반환은 없고, 인자로 들어온 리스트 내부의 데이터를 무작위로 섞습니다.
매개변수에는 시퀀스 데이터 타입이 들어가게 됩니다.
하지만 내부의 값을 무작위로 바꿔야 하기 때문에
내부인자를 변경할 수 있는 리스트만 가능하게 됩니다. (문자열, 튜플 및 range(a,b)는 불가능)
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(arr) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] random.shuffle(arr) # 랜덤셔플 print(arr) # [10, 5, 6, 7, 8, 9, 2, 3, 4, 1] 무작위로 변경됨.
random.choice(seq)
random.choice(seq) 함수는 매개변수로 seq 타입을 받아 무작위로 하나의 원소를 뽑는 함수입니다.
seq 타입은 문자열, 튜플, range, 리스트 타입들을 말합니다.
x1 = random.choice('BlockDMask') print(x1) # 'BlockDMask' 문자열중 랜덤한 문자를 반환
random.sample(seq or set, N)
랜덤하게 여러 개의 원소를 선택합니다.
첫번째 매개 변수로 시퀀스 데이터 타입(튜플, 문자열, range, 리스트) 또는 set 타입을 받을 수 있습니다.
두번째 매개 변수로는 랜덤하게 뽑을 인자의 개수 입니다.
x1 = random.sample([1, 2, 3, 4, 5], 3) print(x1) # [4, 1, 5]
특징
- 겹치지 않는 element를 반환
'Language > Python' 카테고리의 다른 글
[Python] Pandas DataFrame index 정렬 및 초기화 (0) | 2020.11.20 |
---|---|
[Python] Custom Sparse Matrix 생성 (0) | 2020.11.17 |
[Python] os 모듈 정리 (0) | 2020.11.15 |
[Python] 코드 실행시간 측정 (0) | 2020.11.15 |
[Python] scipy.sparse.random Matrix 생성 방법 (0) | 2020.11.13 |