numpy.nanmedian¶
-
numpy.
nanmedian
(a, axis=None, out=None, overwrite_input=False, keepdims=<class numpy._globals._NoValue>)[source]¶ 沿着指定轴计算中值,而忽略NaN。
返回数组元素的中位数。
版本1.9.0中的新功能。
参数: a:array_like
输入可以转换为数组的数组或对象。
axis:{int,int,None},可选
计算中值的轴或轴。默认值是计算数组的平面版本中的中值。自版本1.9.0起,支持一系列轴。
out:ndarray,可选
用于放置结果的替代输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但如果需要,将转换类型(输出)。
overwrite_input:bool,可选
keepdims:bool,可选
返回: median:ndarray
保存结果的新数组。如果输入包含小于
float64
的整数或浮点数,则输出数据类型为np.float64
。否则,输出的数据类型与输入的数据类型相同。如果指定out,则返回该数组。也可以看看
笔记
Given a vector
V
of lengthN
, the median ofV
is the middle value of a sorted copy ofV
,V_sorted
- i.e.,V_sorted[(N-1)/2]
, whenN
is odd and the average of the two middle values ofV_sorted
whenN
is even.例子
>>> 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) nan >>> np.nanmedian(a) 3.0 >>> np.nanmedian(a, axis=0) array([ 6.5, 2., 2.5]) >>> np.median(a, axis=1) array([ 7., 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)