numpy.ma.median¶
-
numpy.ma.
median
(a, axis=None, out=None, overwrite_input=False, keepdims=False)[source]¶ 计算沿指定轴的中值。
返回数组元素的中位数。
参数: a:array_like
输入可以转换为数组的数组或对象。
axis:int,可选
计算中值的轴。默认值(None)用于计算数组的扁平版本的中值。
out:ndarray,可选
用于放置结果的替代输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但如果需要,将转换类型。
overwrite_input:bool,可选
如果为True,则允许使用输入数组(a)的内存进行计算。输入数组将通过对中值的调用进行修改。当您不需要保留输入数组的内容时,这将节省内存。将输入视为未定义,但可能会完全或部分排序。默认值为False。请注意,如果overwrite_input为True,并且输入不是ndarray,则会引发错误。
keepdims:bool,可选
如果设置为True,则缩小的轴在结果中保留为尺寸为1的尺寸。使用此选项,结果将根据输入数组正确地广播。
版本1.10.0中的新功能。
返回: median:ndarray
除非指定了out,否则将返回保存结果的新数组,在这种情况下将返回对out的引用。对于小于float64的整数和浮点型,返回数据类型为float64,否则为输入数据类型。
也可以看看
笔记
Given a vector
V
withN
non masked values, the median ofV
is the middle value of a sorted copy ofV
(Vs
) - i.e.Vs[(N-1)/2]
, whenN
is odd, or{Vs[N/2 - 1] + Vs[N/2]}/2
whenN
is even.例子
>>> x = np.ma.array(np.arange(8), mask=[0]*4 + [1]*4) >>> np.ma.median(x) 1.5
>>> x = np.ma.array(np.arange(10).reshape(2, 5), mask=[0]*6 + [1]*4) >>> np.ma.median(x) 2.5 >>> np.ma.median(x, axis=-1, overwrite_input=True) masked_array(data = [ 2. 5.], mask = False, fill_value = 1e+20)