안녕하세요
블레이즈 테크노트
블레이즈 입니다.

오늘은 NumPy를 활용해 다양한 방식으로 숫자 배열을 생성하는 방법에 대해 공유하고자 합니다.
먼저, np.linspace 함수를 사용하는 예시를 살펴보겠습니다. 이 함수는 시작점과 종료점 사이에서 균등한 간격으로 숫자를 생성합니다. 기본적으로, 이 함수는 시작점 1부터 종료점 11까지, 총 50개의 숫자를 선형 간격으로 생성합니다.

기본 값이 50이라 1부터 11까지 선형간격으로 50개의 숫자를 생성해줍니다.
이어서, np.linspace 함수를 사용해 1부터 11까지 총 11개의 숫자를 생성하고, 이를 활용해 여러 수학 함수의 결과를 탐색해 보겠습니다.
x = np.linspace(1,11,11)
y_1 = np.sin(x)
y_2 = np.cos(x)
y_3 = np.exp(x)
y_4 = np.log(x)
print(x)
print()
print(y_1)
print()
print(y_2)
print(y_3)
print(y_4)
이렇게 하면 다음과 같은 출력 결과가 나오죠!

다음으로, np.random.randint() 메서드를 통해 주어진 범위 내에서 무작위 정수를 생성하는 방법입니다.
예를 들어, 0부터 4까지의 범위에서 하나의 정수를 랜덤하게 선택합니다.
a = np.random.randint(5) # from 0~4 (range)
print(a)
다음으로, np.random.normal() 함수를 사용해 정규 분포에서 난수를 생성하는 방법도 있습니다.
아래 예시에서는 평균이 1이고 표준 편차가 1인 정규 분포에서 난수를 생성합니다.
# Numbers normally distributed
b = np.random.normal(1,1,size=(2,4)) # (mean), (standard deviation), (size=)
print(b)
print(b.shape)
b_1 = np.random.normal(1,1,5)
print(b_1)
- b = np.random.normal(1,1,size=(2,4))
- 이 부분은 평균(mean)이 1이고 표준 편차(standard deviation)가 1인 정규 분포에서 난수를 생성하여 2x4 크기의 배열을 만듭니다. 이 배열은 2개의 행과 4개의 열로 구성됩니다.
- b_1 = np.random.normal(1,1,5)
- 이 부분은 평균이 1이고 표준 편차가 1인 정규 분포에서 5개의 난수를 생성하여 배열을 만듭니다. size 파라미터에 정수값 5를 전달하면 1차원 배열이 생성되며, 배열의 길이는 5입니다.

저는 이러한 출력결과가 나왔네요.
랜덤하게 뽑는 거라 5개만 뽑을 경우 0 이상이 4개나 되는 경우도 있는 것 같아요.
마지막으로, np.random.rand()와 np.random.randn() 메서드를 사용한 예입니다. np.random.rand() 함수는 0에서 1 사이의 균등 분포에서 샘플을 생성합니다. 반면, np.random.randn() 함수는 표준 정규 분포에서 샘플을 생성합니다. 이를 통해 다양한 분포에서 난수를 생성할 수 있습니다.
d = np.random.rand(2,5) # (size) from 0 to 1
print(d)
print()
d_1 = np.random.rand(3)
print(d_1)
이번 포스팅에서는 NumPy를 활용한 다양한 난수 생성 방법을 살펴보았습니다. NumPy는 데이터 분석 및 과학 계산을 위한 강력한 도구이며, 이러한 기능을 통해 복잡한 수학적 연산을 손쉽게 수행할 수 있습니다.
'머신러닝(Machine Learning)' 카테고리의 다른 글
머신러닝 이론 선형회귀모델: Ridge, Lasso, Elastic Net (0) | 2024.02.26 |
---|---|
머신러닝 기초_pandas, matplotlib.pyplot 활용하기 (0) | 2024.02.25 |
NLP BERT 모델 코드 스터디 리뷰 (0) | 2023.09.16 |
NLP BERT 모델 이해하기 (1) 트랜스포머로부터 (0) | 2023.09.10 |
2023 서울대학교 컴퓨팅 프론티어 여름학교 (0) | 2023.09.03 |