numpy.ma.median#

ma.median(a, axis=None, out=None, overwrite_input=False, keepdims=False)[源代码]#

计算沿指定轴的中位数.

返回数组元素的中位数.

参数:
aarray_like

可以转换为数组的输入数组或对象.

axis整数,可选

计算中位数的轴.默认值(None)是计算沿数组扁平化版本的中位数.

outndarray, 可选

用于放置结果的可选输出数组.它必须具有与预期输出相同的形状和缓冲区长度,但必要时将强制转换类型.

overwrite_inputbool, 可选

如果为True,则允许使用输入数组(a)的内存进行计算.输入数组将被修改为调用中位数.当您不需要保留输入数组的内容时,这将节省内存.将输入视为未定义,但它可能会被完全或部分排序.默认为False.请注意,如果 overwrite_input 为True,并且输入还不是 ndarray ,则会引发错误.

keepdimsbool, 可选

如果将其设置为 True,则缩减的轴将作为大小为 1 的维度保留在结果中.使用此选项,结果将针对输入数组正确广播.

返回:
medianndarray

除非指定了输出,否则将返回一个包含结果的新数组,在这种情况下,将返回对输出的引用.整数和小于 float64 的浮点数返回数据类型为 float64 ,否则,为输入数据类型.

参见

mean

注释

给定一个具有 N 个非掩码值的向量 V , V 的中位数是 V 排序副本( Vs )的中间值-即 Vs[(N-1)/2] ,当 N 为奇数时,或 {Vs[N/2 - 1] + Vs[N/2]}/2N 为偶数时.

示例

>>> import numpy as np
>>> 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.0, 5.0],
             mask=[False, False],
       fill_value=1e+20)