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,則返回包含平均值的新陣列,否則返回對輸出陣列的引用。
註解
算術平均值是沿軸的元素總和除以元素數量。
請注意,對於浮點數輸入,平均值是使用與輸入相同的精度計算的。根據輸入資料,這可能會導致結果不準確,尤其是對於
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