numpy.nanmedian#
- numpy.nanmedian(a, axis=None, out=None, overwrite_input=False, keepdims=<no value>)[原始碼]#
計算沿指定軸的中位數,同時忽略 NaN 值。
返回陣列元素的中位數。
- 參數:
- aarray_like
輸入陣列或可轉換為陣列的物件。
- axis{int, sequence of int, None}, optional
計算中位數的軸或軸。預設值是沿陣列的展平版本計算中位數。自版本 1.9.0 起支援軸序列。
- outndarray, optional
用於放置結果的替代輸出陣列。它必須具有與預期輸出相同的形狀和緩衝區長度,但必要時將轉換(輸出的)類型。
- overwrite_inputbool, optional
如果為 True,則允許使用輸入陣列 a 的記憶體進行計算。輸入陣列將被呼叫
median
修改。當您不需要保留輸入陣列的內容時,這將節省記憶體。將輸入視為未定義,但它可能會被完全或部分排序。預設值為 False。如果 overwrite_input 為True
且 a 還不是ndarray
,則會引發錯誤。- keepdimsbool, optional
如果設定為 True,則縮減的軸將保留在結果中,作為大小為一的維度。使用此選項,結果將針對原始 a 正確廣播。
如果這不是預設值,它將傳遞(在空陣列的特殊情況下)到底層陣列的
mean
函數。如果陣列是子類別且mean
沒有 kwarg keepdims,則會引發 RuntimeError。
- 返回:
- medianndarray
一個包含結果的新陣列。如果輸入包含小於
float64
的整數或浮點數,則輸出資料類型為np.float64
。否則,輸出的資料類型與輸入的資料類型相同。如果指定了 out,則會改為返回該陣列。
另請參閱
註解
給定一個長度為
N
的向量V
,V
的中位數是V
的排序副本V_sorted
的中間值 - 即,當N
為奇數時為V_sorted[(N-1)/2]
,當N
為偶數時為V_sorted
的兩個中間值的平均值。範例
>>> import numpy as np >>> a = np.array([[10.0, 7, 4], [3, 2, 1]]) >>> a[0, 1] = np.nan >>> a array([[10., nan, 4.], [ 3., 2., 1.]]) >>> np.median(a) np.float64(nan) >>> np.nanmedian(a) 3.0 >>> np.nanmedian(a, axis=0) array([6.5, 2. , 2.5]) >>> np.median(a, axis=1) array([nan, 2.]) >>> b = a.copy() >>> np.nanmedian(b, axis=1, overwrite_input=True) array([7., 2.]) >>> assert not np.all(a==b) >>> b = a.copy() >>> np.nanmedian(b, axis=None, overwrite_input=True) 3.0 >>> assert not np.all(a==b)