numpy.average(), 배열 가중 평균

numpy.average()는 배열의 가중 평균 값을 계산합니다. 가중 평균은 평균을 구하려는 숫자마다 가중치를 적용하여 평균 값을 계산합니다.

[1, 2, 3] 배열에 가중치를 (1, 2, 3)을 주고 평균을 구하면, (1x1 + 2x2 + 3x3) / 6 = 2.33이 됩니다.

numpy.mean()은 산술 평균을 계산하며, 산술 평균은 가중치 없이 모든 숫자를 더하고 개수로 나눈 평균 값입니다.

average()의 기본적인 사용 방법

  • 모두 같은 가중치를 적용하면, 모든 값을 더하고 개수로 나눈 평균 값과 같다
  • 서로 다른 가중치를 적용하면, 각 가중치를 적용하여 평균 값 계산
import numpy as np

arr = np.array([2, 4, 6, 8, 10])

# 모두 같은 가중치
weights = np.array([1, 1, 1, 1, 1])
weighted_avg = np.average(arr, weights=weights)
print(weighted_avg) # (2 + 4 + 6 + 8 + 10) / 5 = 6

# 서로 다른 가중치
weights = np.array([.1, .2, .3, .3, .1])
weighted_avg = np.average(arr, weights=weights)
print(weighted_avg) # 2*0.1 + 4*0.2 + 6*0.3 + 8*0.3 + 10*0.1 = 6.2

Output:

6.0
6.1999999999999975

2차원 배열에서 열(Column)의 가중 평균 계산

  • 열의 평균을 계산하려면, axis=0으로 축을 지정해야 함
  • axis=0는 2차 배열에서 열(Column)을 의미
import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])
weights = np.array([1, 2, 3])

weighted_avgs = np.average(arr, axis=0, weights=weights)
print(weighted_avgs)

결과를 보면, 열의 평균을 아래와 같이 가중치와 함께 계산하였습니다.

  • (1*1 + 4*2 + 7*3) / 6(가중치 합) = 5
  • (4*1 + 5*2 + 9*3) / 6(가중치 합) = 6
  • (3*1 + 6*2 + 9*3) / 6(가중치 합) = 7
[5. 6. 7.]

2차원 배열에서 행(Row)의 가중 평균 계산

  • 행의 평균을 계산하려면, axis=1으로 축을 지정해야 함
  • axis=1는 2차 배열에서 행(Row)을 의미
import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])
weights = np.array([1, 2, 3])

weighted_avgs = np.average(arr, axis=1, weights=weights)
print(weighted_avgs)

결과를 보면, 열의 평균을 아래와 같이 가중치와 함께 계산하였습니다.

  • (1*1 + 2*2 + 3*3) / 6(가중치 합) = 2.333
  • (4*1 + 5*2 + 6*3) / 6(가중치 합) = 5.333
  • (7*1 + 8*2 + 9*3) / 6(가중치 합) = 8.333
[2.33333333 5.33333333 8.33333333]
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha