numpy.ma.median#
- ma.median(a, axis=None, out=None, overwrite_input=False, keepdims=False)[源代码]#
计算沿指定轴的中位数.
返回数组元素的中位数.
- 参数:
- aarray_like
可以转换为数组的输入数组或对象.
- axisint, 可选
计算中位数的轴.默认值(None)是计算展平版本数组的中位数.
- outndarray, 可选
要在其中放置结果的替代输出数组.它必须具有与预期输出相同的形状和缓冲区长度,但如有必要,类型将被强制转换.
- overwrite_inputbool, 可选
如果为真,则允许使用输入数组(a)的内存进行计算.调用中位数时将修改输入数组.当您不需要保留输入数组的内容时,这将节省内存.将输入视为未定义,但它可能已完全或部分排序.默认值为 False.请注意,如果 overwrite_input 为 True,并且输入还不是 ndarray,则会引发错误.
- keepdimsbool, 可选
如果设置为 True,被减少的轴将作为尺寸为1的维度保留在结果中.使用此选项,结果将正确地与输入数组进行广播.
在 1.10.0 版本加入.
- 返回:
- medianndarray
除非指定了 out,否则将返回一个包含结果的新数组,在这种情况下,将返回对 out 的引用.返回的数据类型为 float64 用于小于 float64 的整数和浮点数,否则为输入数据类型.
参见
备注
给定一个包含
N
个非掩码值的向量V
,``V`` 的中位数是V
的排序副本 (Vs
) 的中间值 - 即当N
为奇数时,``Vs[(N-1)/2]``,或当N
为偶数时,``{Vs[N/2 - 1] + Vs[N/2]}/2``.示例
>>> 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)