【毎日Python】Pythonで配列の単純平均・加重平均を取得する方法|numpy.average

average
こつこつPython

Pythonで配列の重み付きの平均を算出する方法です。
使用するのは、Pythonのnumpyライブラリのaverageメソッドです。
重み付きの平均は、各値を足して、各値の個数で割るだけの算術平均とは異なります。
重みとは、各値に掛け算をすることです。
各値にそれぞれ掛け算をしてから平均を求めることにより、より正確な平均を算出することができます。

import numpy as np

このような配列で試してみましょう。

a = np.array([1, 5, 12, 0, 5, 1]) 

まず、各値の重みを指定します。
それぞれの重みをこのように設定します。
つまり、配列aの値に対し、重みの値がそれぞれ掛け算されます。

w = np.array([0.4, 0.2, 0.1, 0.5, 0.2, 0.4])  

続けて、averge関数の第一引数に配列a、第二引数のweightsに各値の重みを格納した配列wを指定します。
実行します。
重み付きの平均を算出することができました。

np.average(a, weights=w)

実行結果:

2.222222222222222

ちなみに、各値を足して割るだけの算術平均は、引数に配列のみを指定して求めることができます。

np.average(a)

実行結果:

4.0

なお、似た関数であるmean関数でも、算術平均を求めることができます。

np.mean(a)

実行結果:

4.0

関連メソッド

【毎日Python】Pythonで配列の平均を算出する方法|numpy.mean,nanmean

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト