본문 바로가기
Programming (프로그래밍)/Python

[NumPy] NumPy에서 랜덤 숫자 생성하기

by 김조이1 2025. 1. 23.
728x90

NumPy는 데이터 분석과 머신러닝에서 중요한 랜덤 숫자 생성 기능을 제공한다. NumPy에서 자주 사용하는 랜덤 숫자 생성 도구인 np.random.seed, np.random.randint, 그리고 np.random.rand를 알아보자.

 

1. np.random.seed()

랜덤 시드를 설정하면 동일한 랜덤 숫자를 반복적으로 생성할 수 있기 때문에 코드 실행마다 같은 결과를 얻을 수 있기 때문에 재현 가능성(reproducibility) 을 확보할 수 있다.

import numpy as np

# 랜덤 시드 설정
np.random.seed(101)

# 0 이상 100 미만의 정수 10개 생성
arr = np.random.randint(0, 100, 10)
print(arr)

### 출력
[95 11 81 70 63 87 75  9 77 40]

 

2. np.random.rand()

np.random.rand()는 0과 1 사이의 랜덤 실수를 생성하는 함수이다. 1차원 배열뿐만 아니라, 원하는 형태의 다차원 배열도 생성할 수 있고 원하는 범위로 조정하는 것도 가능하다.

# 1D 배열: 랜덤 실수 5개 생성
rand_floats = np.random.rand(5)
print(rand_floats)

# 5부터 10 사이의 랜덤 실수 생성
rand_floats_custom = 5 + (10 - 5) * np.random.rand(5)
print(rand_floats_custom)

#### 출력
[0.51639863 0.57066759 0.02847423 0.17152166 0.68527698]
[7.58155312 9.27688471 5.14237115 6.0282813  7.56805942]

 

3. np.random.randint()

np.random.randint()는 지정한 범위 내에서 정수를 생성한다.

# 0 이상 100 미만의 정수 10개 생성
rand_integers = np.random.randint(0, 100, 10)
print(rand_integers)

# 20부터 50 사이의 정수 5개 생성
rand_integers_custom = np.random.randint(20, 50, 5)
print(rand_integers_custom)

#### 출력
[16 72 55 52 51 41 90 23 60 26]
[48 20 43 28 35]

 

 

정리

함수 설명 사용 예시 출력 예시
np.random.seed() 랜덤 시드를 설정하여 실행할 때마다 동일한 랜덤 값을 생성하도록 설정. np.random.seed(101)
np.random.randint(0, 100, 5)
[95 11 81 70 63]
np.random.randint() 지정된 범위 내에서 랜덤 정수를 생성. 크기와 범위를 지정할 수 있음. np.random.randint(0, 100, 5)
np.random.randint(20, 50, 3)
[16 72 55 52 51]
[48 20 43]
np.random.rand() 0과 1 사이의 랜덤 실수를 생성. 원하는 범위로 조정 가능. np.random.rand(5)
5 + (10 - 5) * np.random.rand(5)
[0.516 0.570 0.028 0.171 0.685]
[7.58 9.27 5.14 6.02 7.56]

 

반응형