numpy.mean#

numpy.mean(a, axis=None, dtype=None, out=None, keepdims=<no value>, *, where=<no value>)[source]#

沿指定軸計算算術平均值。

返回陣列元素的平均值。預設情況下,平均值取自展平後的陣列,否則取自指定的軸。整數輸入會使用 float64 中間值和傳回值。

參數:
aarray_like

包含需要計算平均值的數字的陣列。如果 a 不是陣列,則會嘗試轉換。

axisNone 或 int 或 tuple of ints, optional

計算平均值所沿著的軸或軸。預設值是計算展平陣列的平均值。

如果這是 int 元組,則會在多個軸上執行平均值計算,而不是像之前那樣在單個軸或所有軸上執行。

dtypedata-type, optional

計算平均值時使用的類型。對於整數輸入,預設值為 float64;對於浮點數輸入,則與輸入 dtype 相同。

outndarray, optional

用於放置結果的替代輸出陣列。預設值為 None;如果提供,則它必須具有與預期輸出相同的形狀,但必要時將轉換類型。詳情請參閱 輸出類型決定。詳情請參閱 輸出類型決定

keepdimsbool, optional

如果設定為 True,則縮減的軸將保留在結果中,作為大小為一的維度。使用此選項,結果將針對輸入陣列正確廣播。

如果傳遞預設值,則 keepdims 將不會傳遞給 mean 方法 的 ndarray 子類,但是任何非預設值都會傳遞。如果子類的方法未實作 keepdims,則會引發任何例外。

wherearray_like of bool, optional

要包含在平均值中的元素。詳情請參閱 reduce

版本 1.20.0 新增。

返回:
mndarray, see dtype parameter above

如果 out=None,則返回包含平均值的新陣列,否則返回對輸出陣列的引用。

另請參閱

average

加權平均值

std, var, nanmean, nanstd, nanvar

註解

算術平均值是沿軸的元素總和除以元素數量。

請注意,對於浮點數輸入,平均值是使用與輸入相同的精度計算的。根據輸入資料,這可能會導致結果不準確,尤其是對於 float32(請參閱下面的範例)。使用 dtype 關鍵字指定更高精度的累加器可以緩解此問題。

預設情況下,float16 結果是使用 float32 中間值計算的,以獲得更高的精度。

範例

>>> import numpy as np
>>> a = np.array([[1, 2], [3, 4]])
>>> np.mean(a)
2.5
>>> np.mean(a, axis=0)
array([2., 3.])
>>> np.mean(a, axis=1)
array([1.5, 3.5])

在單精度中,mean 可能不準確

>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.mean(a)
np.float32(0.54999924)

在 float64 中計算平均值更準確

>>> np.mean(a, dtype=np.float64)
0.55000000074505806 # may vary

timedelta64 中可以計算平均值

>>> b = np.array([1, 3], dtype="timedelta64[D]")
>>> np.mean(b)
np.timedelta64(2,'D')

指定 where 參數

>>> a = np.array([[5, 9, 13], [14, 10, 12], [11, 15, 19]])
>>> np.mean(a)
12.0
>>> np.mean(a, where=[[True], [False], [False]])
9.0