[Python] 파이썬, 평균, 분산, 표준편차 구하기

    이 포스팅은 일반적인 계산으로 구하는 것과 numpy를 활용하는 것 2가지 방식을 모두 제공합니다.

     

    파이썬으로 평균, 분산, 표준편차 연산하기

     

    라이브러리 및 리스트 생성

    import math
    import numpy
    
    vals = [i+1 for i in range(10)] # 1부터 10까지 숫자를 리스트로 생성
    print(vals)
    
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    우선 for문을 사용하여 1 ~ 10까지의 숫자를 리스트로 생성하여 vals라는 변수에 담습니다.

     

    평균구하기

    # 평균
    mean = sum(vals) / len(vals)
    print(mean)
    
    # 5.5

    일반적인 방식으로 평균을 구하는 방식은 이와 같이 더하고 나누는 작업을 해야 하지만

     

    # Numpy 평균
    num_mean = numpy.mean(vals)
    print(num_mean)
    
    # 5.5

    넘파이(Numpy)를 사용하면 이와 같이 매우 쉽게 평균을 구할 수 있습니다. 그러나 평균은 뭐 다 쉽죠

     

    분산구하기

    # 분산
    vsum = 0
    for val in vals:
        vsum = vsum + (val - mean)**2
    variance = vsum / len(vals)
    print(variance)
    
    # 8.25

    분산을 구하는 과정부터 복잡해지기 시작합니다. 위 방식은 일반적으로 분산을 구하는 방법입니다.

     

    # Numpy 분산
    num_var = numpy.var(vals)
    print(num_var)
    
    # 8.25

    그러나 Numpy로 하면 이 마저도 매우 쉽게 구할 수 있습니다. 결과 역시 같다는 걸 알 수 있습니다.

     

    표준편차 구하기

    # 표준편차
    std = math.sqrt(variance)
    print(std)
    
    # 2.8722813232690143

    표준편차를 구하기 위해서는 분산을 알아야 합니다. 결국 일반적인 방식으로 구하기 위해서는 위 계산식들(평균, 분산)이 모두 필요합니다.

     

    # Numpy 표준편차
    std = numpy.std(vals)
    print(std)
    
    # 2.8722813232690143

    Numpy로 하면 이 모든 계산식들이 필요가 없어지며 오로지 std만 호출하고 리스트만 넣어주면 끝이 납니다. 결국 표준편차와 같은 값을 구할 때에는 Numpy만큼 좋은 라이브러리는 없는 것 같습니다.

    반응형

    댓글

    Designed by JB FACTORY