반응형
데이터를 처리하거나 인공지능에서 모델을 추정하기 위해 난수를 발생하는 경우가 많습니다. 이번에는 난수를 생성하는 메소드와 활용방법에 대해 알아보도록 하겠습니다.
난수란
정의된 범위내에서 무작위로 추출된 수
1. numpy패키지 소개
- numpy는 파이썬에서 선형 대수(linear algebra) 계산 및 통계기능을 제공합니다. 다차원 배열 클래스(n-dimensional array)와 벡터화 연산(vectorized operation)을 지원합니다.
- numpy 패키중에 random모듈은 난수를 생성해주는 다양한 함수가 제공 됩니다.
- 난수생성 주요 함수는 표와 같습니다.
함수명 | 설명 | 예 |
random.rand() | 0~1사이 실수형 데이터 난수 생성 | np.random.rand(5) : 5개의 난수가 발생 |
random.randint() | 정수 난수를 생성 | np.random,randint(5, size=10) |
random.randn() | 표준정규분포 기준 난수 생성 | 2.0* np.random.randn(10)+3.5 |
random.normal() | 정규분포 기준 난수 생성 | np.ramdom.normal(0, 1, size=10) |
random.choice() | 리스트의 범주에서 무작위로 1개 선택 | |
random.seed() | 난수 재생성(동일값을 얻고 싶을 경우) |
2.random.rand()
0~1사이 실수형 데이터 난수 생성됨
3. random.randint()
random.randint([최소값, 최대값], size=n) : [최소값, 최대값]의 범위에서 size만큼 정수형의 난수를 생성
4. random.randn()
random.randn() 함수는 표준정규분포(Standard normal distribustion: 평균은 0이고 표준편차가 1인 정규분포)로 부터 난수를 생성
n3의 배열은 평균이 3.0이고 표준편차 2.0인 난수를 생성한 예입니다.
평균이 3.0이고 표준편차가 2.0인 난수를 발생하기 위해서는
표준편차 * np.random.randn(10) + 평균과 같은 형식으로 사용하면 도비니다.
5. random.normal()
정규분포(Normal Distribution)로 부터 샘플링된 데이터 중 난수를 생성
- n1 배열은 정규분포(0,1)로 부터 얻은 데이터로 난수 3개를 발생
- n2 배열은 정규분포(2, 2^2)로 부터 얻은 데이터로 난수 4개를 발생
- n3 배열은 정규분포(2, 3^2)로 부터 얻은 데이터로 3행 3열의 난수를 발생
6. random.choice()
주어진 배열로 부터 임의의 난수를 생성함
7. random.seed()
난수를 발생할 때 시작값 설정함으로서 동일한 난수를 재 생성함
- a는 seed값을 부여하지 않아 실행을 할때 마다 a의 array값이 바뀝니다.
- c는 seed(5)라고 지정함으로 실행을 할때 마다 c의 array값이 동일합니다. 예측을 할때 동일한 결과를 얻기 위해서는 seed값을 정해주어야 하고, 한번만 지정하면 됩니다.
소스참조 : https://github.com/sense64/data_viz/blob/main/prg_random01.ipynb
'파워 파이썬 > 패키지' 카테고리의 다른 글
판다스를 활용한 데이터 시각화 (0) | 2023.10.01 |
---|---|
강력한 pandas를 이용한 데이터 처리 2 (0) | 2023.10.01 |
강력한 pandas를 이용한 데이터 처리 1 (0) | 2023.10.01 |
seoborn 패키지로 멋진 시각화하자 (0) | 2023.09.27 |
데이타 시각화를 위한 도구 matplotlib (0) | 2023.09.26 |