numpy의 랜덤함수 서브모듈 기능알아 보자
서브모듈 기능란.

랜덤 함수의 하위 함수인 함수. 탭키를 누르면 이렇게 됩니다. 종류가 많으니 우리가 자주 사용하는 것들만 살펴보자
1. np.random.rand() – 0과 1 사이의 샘플
– 0과 1 사이의 균일한 분포로 임의의 ndarray를 생성합니다.
# <in>
np.random.rand(2, 3)
# <out>
array(((0.86430509, 0.18265898, 0.46934252),
(0.22979993, 0.89849182, 0.30967946)))
출력은 실행될 때마다 다른 값입니다.
2. np.random.edgeN() – 정규 분포에서 샘플링
– n: 정규분포
정규 분포~처럼 견본 추출완전한 무작위 ndarray생성
# <in>
x = np.random.randn(5)
y = np.random.randn(2, 2)
z = np.random.randn(3, 4, 2)
print(x)
print(y)
print(z)
# <out>
(-0.58401638 1.37962863 -0.64165833 -0.42724694 0.74106773)
(( 0.94302591 -0.05329357)
(-0.52797546 1.05197714))
((( 0.34171814 -0.31797128)
( 0.28743215 -1.05153548)
(-0.48148663 -1.05079033)
( 1.46262637 -0.63480789))
((-0.20628469 -1.40535006)
(-0.92046105 -1.40223408)
(-0.68383868 -0.78724848)
(-2.23402328 0.08321203))
((-2.07210093 1.2044467 )
(-0.20293513 -0.58608335)
( 0.09561407 0.56547173)
( 1.39963372 -0.14091536)))
정규분포에서 추출한 표본이기 때문에 음의 값이 있음을 확인할 수 있다.
실수 대신 정수에서 샘플을 추출하려고 할 때 사용하는 함수를 살펴보겠습니다.
3. np.random.randint() – 정수만 무작위로 샘플링
np.random.randint(1, 100, size =(5, 5))
# 1과 99사이의 정수를 5 x 5 배열로 랜덤 추출
함수의 수가 방대하기 때문에 함수에 적용된 매개변수가 기억나지 않으면 Shift + Tab을 눌러 검사할 수 있습니다.
4. np.random.seed() 함수 – 사용된 임의의 값을 기억하고 싶은 경우
실험 중에 결과를 확인하고 결과를 생성한 샘플을 검토해야 하는 상황이 있습니다. 정수라면 단순한 배열이라면 기억할 수 있지만 실수라면 까다로울 수 있습니다. 이때 사용하는 함수가 seed 함수입니다.
# <in>
np.random.seed(28)
np.random.rand(2,2)
# <out>
array(((0.72901374, 0.5612396 ),
(0.12496709, 0.39759237)))
시드가 28이고 random.rand가 시드 28의 무작위 샘플인 경우
array(((0.72901374, 0.5612396 ),
(0.12496709, 0.39759237)))
결과로만 나옵니다.
지금은 어떻게 쓰나 실감이 안 나지만 쓰게 될 날은 꼭 오겠죠.
5. np.random.choice() – 주어진 것 중에서 무작위 선택
주어진 1D 배열의 무작위 샘플.
정수가 지정되면 np.arange(integer)로 처리됩니다.
np.random.choice(100, size=(2,2))
np.arange(100)에서 2 x 2 배열을 무작위화합니다.
x = np.array((1, 2, 3, 1.5, 2.6, 4.9))
np.random.choice(x, size = (2, 2))
2×2 2D 배열은 x라는 1D ndarray에서 무작위로 추출됩니다.
6. np.random.uniform(), normal() 등…
다양한 확률 분포에 따라 ndarray를 생성할 수 있습니다.
np.random.uniform(1, 3, size = (2, 2))
np.random.normal(size = (2, 2))