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_inputTruea 還不是 ndarray,則會引發錯誤。

keepdimsbool, optional

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

如果這不是預設值,它將傳遞(在空陣列的特殊情況下)到底層陣列的 mean 函數。如果陣列是子類別且 mean 沒有 kwarg keepdims,則會引發 RuntimeError。

返回:
medianndarray

一個包含結果的新陣列。如果輸入包含小於 float64 的整數或浮點數,則輸出資料類型為 np.float64。否則,輸出的資料類型與輸入的資料類型相同。如果指定了 out,則會改為返回該陣列。

另請參閱

mean, median, percentile

註解

給定一個長度為 N 的向量 VV 的中位數是 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)