파이썬(Python)/numpy

[Python] 균등분포 란? 파이썬으로 구현하고 그래프 만들기(Uniform Distribution)

끄적끄적아무거나 2022. 1. 19. 08:53
반응형

 

목차

     

     

     

     

    균등분포란(Uniform Distribution)?

     

    통계(Statistics)나 확률(Probability)이론에서 연속 균등 분포 (사각 분포, Rectangular distribution)은 대칭 확률 분포 중에 하나 입니다. 

     

    균등분포란(Uniform Distribution)는 실험이나 통계의 결과가 특정 범위 내에서 발생합니다. 일반적으로 범위는 a, b로 표현 합니다. 그리고 전체 확률의 합은 1로 표현되어 Uniform이라는 표현이 사용 됩니다. 그리고 각 인자들이 발생확률이 동일합니다.

     

    아래는 균등 분포를 확률 밀도 함수(Probability density function)으로 표현한 수식과 그래프 입니다.

     

    wiki
    By IkamusumeFan - Own work This drawing was created with LibreOffice Draw., CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=27378699

     

     

     

    파이썬으로 균등 분포를 따르는 결과를 출력하기

     

    코드>>

    from numpy import random
    
    x_list = random.uniform(1, 10, size=100)
    
    print(x_list)

    3번 라인: 1~10 사이에서 균등분포의 확률을 사용해서 100개의 값을 추출해서 x_list에 넣음

     

     

    결과>>

    [9.90638381 1.53752311 4.93146635 7.16182789 5.828616   5.66528083
     8.67864119 7.78036379 7.69933547 3.19292293 3.65864049 3.1104082
     2.03017274 3.57657235 7.51142567 6.39615781 4.79355968 4.76484116
     9.30891677 9.1730366  8.2522568  7.01615975 9.43641522 9.8172491
     9.87777007 5.37634425 5.96917501 3.57850795 5.92748759 7.2810333
     3.08111401 4.07897584 6.62184793 5.75722683 9.55339441 5.85417562
     8.42090545 2.93352574 9.95476897 9.98190965 7.34473308 8.00497029
     7.1378905  4.67670785 3.91136305 3.51493759 9.28439196 7.91943104
     2.51358147 3.0232667  5.44004303 2.95847745 9.20962503 8.9252033
     2.96555049 2.8681027  9.45766285 2.7123379  5.00462698 4.09055264
     3.62130948 3.11698442 3.03463979 2.39359286 9.59920895 7.79183243
     9.97870409 8.3624623  8.17765569 4.85644367 2.27433176 5.96654235
     3.74797655 2.77478813 9.74328404 3.53440003 7.18612153 6.27195371
     1.36402549 1.99001418 6.89727519 6.0007608  4.76152598 9.538158
     1.69885562 7.96054019 6.40916611 9.27796242 6.57239516 7.61977429
     2.62557287 7.75612124 1.36775241 5.48584616 4.4534678  6.35856185
     1.4065796  6.29884317 5.2481122  8.13928443]

     

     

     

     

    예제 결과 그래프로 출력하기

     

    코드>>

    from numpy import random
    
    x_list = random.uniform(1, 10, size=100)
    
    print(x_list)
    
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    sns.displot(x_list, kind="kde")
    plt.show()

    7~11번 라인: matplotlib의 seaborn 라이브러리를 사용해서 확률 값을 그래프로 표현하였습니다.

     

     

    결과>>

    코드 3번 라인의 사이즈가 100개였습니다. 사이즈의 값이 커질 수록 그래프는 사각형에 가까운 형태로 변하게 됩니다.

     

     

     

    반응형