akaSonny

[Numpy] numpy의 random 모듈로 다양한 확률 분포 난수 생성하기 본문

Study (Programming)/Python

[Numpy] numpy의 random 모듈로 다양한 확률 분포 난수 생성하기

Jihyeoning 2023. 8. 10. 15:39

numpy random 함수를 은근 많이 쓰게 되는데, 쓰다보니 헷갈려서 정리하는 글 !

 

1. numpy.random.rand() 

  • 0과 1사이에 균일 분포로 랜덤한 값 생성
  • 예시: numpy.random.rand(3, 2)은 3x2 크기의 0과 1사이의 랜덤한 값의 배열을 생성한다.

 

2. numpy.random.randn() 

  • 표준 정규 분포(평균:0, 표준편차:1)를 따르는 랜덤한 값 생성
  • 예시: numpy.random.randn(5)은 평균이 1이고 표준편차가 0인 5개의 랜덤한 값을 생성한다.

 

3. numpy.random.randint() 

  • 최소값, 최대값 (optional)을 입력하여, 해당 범위 내에서 랜덤한 정수 생성
  • size (optional) : 크기 결정, 미입력시 랜덤한 하나의 값만 출력
  • 예시: numpy.random.randint(1, 10, size=5)은 1과 9 사이의 정수 중 5개의 랜덤한 값을 생성한다.

 

4. numpy.random.choice() 

    • 주어진 배열에서 랜덤한 샘플 선택
    • 필수 입력값 (a) : 1-d array 혹은 single value. single value일 경우 range(a) 함수로 들어가게 된다.
    • replace (optional, boolean, default=True): 중복으로 선택할지 결정. True일 경우 중복 선택
    • p (optional): 주어진 배열에서 값이 선택될 확률 설정. 미입력시 동일한 확률 설정
    • 예시: np.random.choice(5, size=3, replace=False) 는 range(5) 에서 중복없이 3개의 값을 선택한다.

 

5. numpy.random.uniform() 

  • 주어진 범위 내에서 균일 분포로 실수값 생성
  • 예시: numpy.random.uniform(0, 1, size=5)은 0과 1 사이의 실수값 중 5개를 생성한다.

 

6. numpy.random.normal() 

  • 정규분포를 따르는 실수값 생성
  • loc: 평균값 (혹은 분포의 center)
  • scale: 표준편차 (혹은 분포의 width)
  • 예시:  numpy.random.normal(loc=0, scale=1, size=10)은 평균이 0이고 표준편차가 1인 정규 분포에서 10개의 랜덤한 값 생성

 

7. numpy.random.shuffle() 

  • 배열의 순서를 랜덤하게 섞음
  • 예시: numpy.random.shuffle([1, 2, 3, 4, 5])