프로그래밍에서 임의의 수를 추출하는 것은 기본적 소양이라고 생각한다. 파이썬에서는 이런 임의 숫자를 추출하는 것을 쉽게 해줄 함수를 여럿 갖고 있다. 이런 함수들은 numpy에서 많이 다룬다.
1. np.random.rand()
먼저 기본적인 임의의 수를 만들어주는 함수를 소개한다. np.random.rand()는 임의의 수를 리턴한다.
import numpy as np
np.random.rand() #pseudo-random numbers
근데 이렇게 하면 매번 임의의 수를 만들 때(np.random.rand()를 호출할때) 다른 수가 나온다. 딥러닝을 할 때 이 임의의 수를 일정하게 나오게 해줘야하는데 그때 쓰는 함수가 np.random.seed()다.
np.random.seed(123)
np.random.rand()
그러면 같은 Seed(123)에서 np.random.rand()를 호출하면 같은 임의의 수를 얻을 수 있다.
2. np.random.randint(a, b)
구간 내에서 임의의 정수를 얻고 싶다면 어떻게 해야할까? np.random.randint(a, b)를 사용하면 된다. np.random.randint(a, b)은 a부터 b-1까지의 정수 중에 아무 값을 생성한다.
예로 a = 0, b = 3이면 np.random.randint(0, 3)은 0, 1, 2 중에서 아무 값이나 리턴하는 것이다.
import numpy as np
np.random.seed(123)
a = np.random.randint(0, 2)
print(a)
여기에 for loop을 덧붙일 수 있다.
import numpy as np
np.random.seed(123)
result = np.random.randint(0, 2)
print(result)
if result == 0:
print("heads")
else:
print("tails")
result = 0이라고 한다면 이 코드를 아무리 반복해도 tails가 나올 일은 없을 것이다. seed를 고정했기 때문에! seed를 고정한다는 의미는 이런 것을 말한다.
'코딩&알고리즘 > 코딩' 카테고리의 다른 글
Python - Random Numbers (2) (0) | 2022.03.11 |
---|---|
Python - Loop Data Structure 정리 (1) (0) | 2022.03.11 |