NumPy mean() 和 average()
平均值是一組觀察值的中心值。平均值可以有多種形式,例如幾何平均值,調和平均值,算術平均值。在統計領域,算術平均值和平均值可以互換使用。它們都使用相同的公式計算,即總觀測值之和除以觀測值總數。
在 Python 中,我們有兩個函式可以計算算術平均值或平均值。這些是 NumPy
模組中可用的 numpy.mean()
和 numpy.average()
函式。
這兩個函式均可用於計算算術平均值或平均值,如下所示:
import numpy as np
arr = np.array([12,15,18,19,20])
print("Average Function: ",np.average(arr))
print("Type returned: ", type(np.average(arr)))
print("Mean Function: ", np.mean(arr))
print("Type returned: ", type(np.mean(arr)))
輸出:
Average Function: 16.8
Type returned: <class 'numpy.float64'>
Mean Function: 16.8
Type returned: <class 'numpy.float64'>
請注意,它們甚至都以相同的型別返回最終輸出,並且看起來這兩個函式是等效的。
但是,它們之間有一些區別。numpy.average()
函式還可以計算陣列的加權平均值,這在 numpy.mean()
函式中是不可能的。為此,我們只需將權重作為引數傳遞給函式,如下所示:
import numpy as np
arr = np.array([12,15,18,19,20])
arr_w = np.array([0.1,0.1,0.1,0.2,0.5])
print("Weighted Average Function: ",np.average(arr,weights = arr_w))
輸出:
Weighted Average Function: 18.3
另一個顯著區別是 np.mean()
函式可以具有許多其他引數,例如 dtype
,out
,where
,keepdims
等,而這些引數在 np.average()
函式中是沒有的。
這樣的附加引數可能是有益的。例如,我們可能會遇到這樣一種情況,要計算平均值的物件型別是未知的或不明確的。在這種情況下,我們可以使用 dtype
引數指定型別。out
引數可以指定我們是否要將結果儲存在備用陣列中。我們還可以使用 axis
引數設定要沿其計算平均值的軸。以下程式碼顯示了 np.mean()
函式中某些引數的用法。
import numpy as np
arr = np.array([[12 ,15 ,18 ,19 ,20],
[10, 16, 7, 18, 20],
[20, 12, 24, 11, 14]])
x = np.arange(3)
print("Mean Function: ", np.mean(arr, dtype = int, axis = 1, out = x))
print("Output array: ", x)
輸出:
Mean Function: [16 14 16]
Output array: [16 14 16]
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn