Arithmetic

평균과 평균필터(Feat. Python)

평균과 평균필터(Feat. Python)

산술 평균

$n$개의 수 $x_1, x_2, … x_n$ 가 있다. 이 수의 산술 평균은 $A_n$ 은 다음과 같이 정의 된다.

$$ A_n = \frac{x_1 + x_2 + … + x_n}{n}, A_0 = 0 \tag{1}$$

그냥 주어신 수의 합을 수의 개수로 나누면 된다. 이러한 식을 배치식이라고 한다. 고정된 데이터의 경우 배치식을 이용햐여 구하면 된다.

def avg_batch(v):
    return sum(v)/len(v)

if __name__ == '__main__:
    ages = [10, 12, 26, 30, 40, 33, 21, 34, 54, 3]
    print(f'Average using Batch Expression: {avg_batch(ages)}')

하지만 입력 데이터가 계속 실시간으로 계속 추가 된다면? 입력 데이터의수가 많아저셔 100만개 정도 된다면? 위 배치식으로 평균을 구하기 위해서는 입력된 모든 값을 메모리에 저장 하여야 하며 새로운 값이 입력 될때마다 모든 값의 평균을 다시 구해야 하기 때문에 비효율 적이다.