개요
난수(Random Number)에 대해서 알아보고 파이썬 NumPy를 이용해서 구현해보도록 하겠습니다
난수(Random Number)
난수는 무작위로 만들어지는 수열을 가리킵니다.
인공지능에서는 파라미터를 초기화할 때 난수를 활용하기도 합니다.
예를 들어 주사위를 던지는 행위가 난수랑 비슷합니다.
주사위를 던지면 1에서 6까지의 수가 무작위로 정해지기 때문입니다.
1에서 6까지의 난수를 생성하기
NumPy의 random.randint()함수에 정수 a를 인수로 넘겨주면 0에서 a-1의 값을 난수로 반환합니다.
import numpy as np
r = np.random.randint(6) + 1 # 0~5까지의 난수가 발생되므로 1을 더해서 1~6으로 만든다.
print(r)
[결과]

결과가 2로 나왔지만 실행할 때마다 숫자는 랜덤 하게 변경됩니다.
0에서 1까지의 난수를 생성하기
NumPy의 random.rand()함수는 0에서 1 사이의 소수의 난수를 생성합니다.
import numpy as np
r = np.random.rand() # 0~1까지의 소수가 랜덤하게 발생
print(r)
[결과]

결과가 실행할때마다 랜덤 하게 변경됩니다.
균일한 난수 만들기
random.rand()함수는 0에서 1 사이의 소수를 균일한 확률로 발생시킵니다.
이 함수에 인수로 정수a를 넘겨주면 a개만큼의 난수를 균일하게 반합니다.
아래의 샘플코드는 x축 y축 값을 가지는 1000개의 좌표를 만들어 그래프에 표시해보도록 하겠습니다.
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
n = 1000
x = np.random.rand(n)
y = np.random.rand(n)
plt.scatter(x, y)
plt.grid()
plt.show()
[결과]

균일하지 않은 난수 만들기
random.randn()함수는 정규분포의 확률에 따라 난수를 발생시킵니다.
정규분포는 중앙으로는 확률이 높아지고 외각 쪽으로는 확률이 낮아집니다.
아래의 샘플코드는 x축 y축 값을 가지는 1000개의 좌표를 만들어 그래프에 표시해보도록 하겠습니다.
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
n = 1000
x = np.random.randn(n)
y = np.random.randn(n)
plt.scatter(x, y)
plt.grid()
plt.show()
[결과]

결과를 보면 중앙에 조금 더 집중되도록 난수가 발생한 것을 알 수 있습니다.
다음에는 절대값에 대해서 알아보도록 하겠습니다.
https://iot-lab.tistory.com/164
08. 파이썬으로 배우는 수학 기초 : 절대값
개요 절대값에 대해서 알아보고 파이썬 NumPy를 이용해서 구현해보도록 하겠습니다 절대값 절대값은 어떤 수의 0으로부터의 거리를 의미합니다. 인공지능에서는 0을 중심으로 값을 거리를 파악��
iot-lab.tistory.com
'프로그래밍 언어 > 파이썬 수학' 카테고리의 다른 글
| 08. 파이썬으로 배우는 수학 기초 : 절대값 (0) | 2020.07.21 |
|---|---|
| 06. 파이썬으로 배우는 수학 기초 : 수열의 합과 곱 (0) | 2020.07.15 |
| 05. 파이썬으로 배우는 수학 기초 : 삼각함수 (2) | 2020.07.14 |
| 04. 파이썬으로 배우는 수학 기초 : 다항식과 다항식함수 (0) | 2020.07.14 |
| 03. 파이썬으로 배우는 수학 기초 : 제곱과 제곱근 (0) | 2020.07.14 |