build my life

[Python] Numpy (3) Random 함수 본문

Python

[Python] Numpy (3) Random 함수

dalovee 2022. 8. 30. 17:53
728x90

오늘은 랜덤함수 종류에 대해서 알아보쟛

rand 함수

- 0 ~ 1 사이에 랜덤값을 반환하는 함수

- n : 값 or shape 대로 랜덤값을 반환해줌

np.random.rand(n)

#예시
np.random.rand()
# 0.6232971766534624

#예시2
np.random.rand(3)
# array([0.90996069, 0.55600572, 0.97184007])

#예시3
np.random.rand(3,3,4)
# array([[[0.69694421, 0.67169397, 0.00789951, 0.80181607],
#       [0.06199847, 0.13240264, 0.80887709, 0.68226835],
#       [0.59328037, 0.95297096, 0.92581903, 0.2461593 ]],

#      [[0.4793652 , 0.44817813, 0.06586831, 0.75956279],
#       [0.51643366, 0.07815942, 0.47496639, 0.75320758],
#       [0.15512409, 0.18343138, 0.30979191, 0.98583079]],

#      [[0.31409368, 0.36831673, 0.81049949, 0.82383243],
#       [0.71842362, 0.2525071 , 0.62835098, 0.59512734],
#       [0.96963158, 0.91894389, 0.70847156, 0.32322779]]])

randn 함수

- 평균이 0이고 분산이 1인 정규분포 형태의 랜덤값을 반환!

arr = np.random.randn(10000)
arr
# array([ 0.49671415, -0.1382643 ,  0.64768854, ..., -0.70531672,
#       0.49576557,  0.64438845])


#분산, 평균 확인
arr.var(), arr.mean()
# (1.0068360554106486, -0.0021359833684262055)

=> randn을 이용해 10000개의 랜덤값이 들어있는 배열을 생성한다.

=> 그 다음, 분산과 평균을 확인해보면 분산은 1에 가깝고 평균은 0에 가까운 것을 확인할 수 있다.

randint 함수

- 특정 범위에 있는 정수 값을 랜덤으로 반환한다!

np.random.randint(n1, n2, n3)
# n1 : start
# n2 : end - 1
# n3 : 배열의 크기(shape)

=> n1 ~ n2-1 사이에 있는 값들 중 n3만큼 반환한다라는 의미

shuffle 함수

- 반환 값이 없고 배열 자체를 섞어주는 함수

- (주의!) 원본이 손상되기 때문에 무조건 copy 한 후 사용할 것!

np.random.shuffle(arr_copy)

choice 함수

- 지정 범위 내에서 지정한 개수 만큼 랜덤하게 선택해서 추출하는 함수

np.random.choice(5,3) # 0~4 사이의 값 중 3개의 값을 랜덤하게 추출

np.random.choice(5,3, replace = False) # 중복된 값이 나오지 않는 옵션

np.random.choice(5,3, p=[0.2,0.2,0.2,0.2,0.2]) # 0~4 숫자의 나올 확률을 설정할 수도 있다!

=> replace 옵션은 중복값이 가능/불가능 선택한다.

=> p 옵션은 지정 숫자가 나올 확률을 설정한다.

 


numpy.... 수치 연산을 빠르게 하는 라이브러리라서 그런지 너무 공부할게 많드아하아악....

오늘은 차원의 축의 개념과 랜덤함수에 대해서 공부했는데 머리가 터.질.것.같.다

차원 수가 커질 수록 이해 못하는 내 머...리....

머신러닝/ 딥러닝 수업을 위해 데이터 전처리 과정 기초를 배우고 있지만 점점 갈 수록 걱정이 태산이다..!

그래도 열심히 복습해서... 내껄로 만들어버려야지 아자아자...

다음은 axis(축), 차원에 대해서 더 공부해보쟈

728x90