Python NumpyのAVERAGEとMEAN

以前の記事では、AVERAGEは重み付き平均でMEANは単純平均ということを紹介しました。

その具体的な例として、PythonでのAVERAGEとMEANをみていきたいと思います。

numpyモジュールを使用し、適当な配列を作成し、平均を計算します。

import numpy as np

array = np.array([1, 2, 3, 4, 5])
mean = np.mean(array)
ave = np.average(array)

print("mean:"+str(mean))
print("average:"+str(ave))

実行結果

mean:3.0
average:3.0

これは、単なる単純平均であり、AVERAGE関数、MEAN関数どちらを用いても同じ結果となります。

AVERAGE

次に重み付き平均を計算してみます。

import numpy as np

array = np.array([1, 2, 3, 4, 5])

weights = np.array([5, 4, 3, 2, 1])

ave = np.average(array, weights=weights)

print(ave)

実行結果

2.3333333333333335

これは、(1×5+2×4+3×3+4×2+5×1)/(5+4+3+2+1)と計算した結果になります。

MEAN

import numpy as np

array = np.array([1, 2, 3, 4, 5])

weights = np.array([5, 4, 3, 2, 1])

mean = np.mean(array, weights=weights)

print(mean)

実行結果

Traceback (most recent call last):
  File "sample.py", line 7, in <module>
    z = np.mean(a, weights=weights)
  File "<__array_function__ internals>", line 4, in mean
TypeError: _mean_dispatcher() got an unexpected keyword argument 'weights'

というようにMEAN関数では、重み付き平均はできません。

以上、Pythonで重み付き平均、単純平均を行ってみたでした。