以前の記事では、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で重み付き平均、単純平均を行ってみたでした。