numpy.ma.median#
- ma.median(a, axis=None, out=None, overwrite_input=False, keepdims=False)[source]#
沿指定轴计算中位数。
返回数组元素的中位数。
- 参数:
- aarray_like
可转换为数组的输入数组或对象。
- axisint, 可选
计算中位数的轴。默认值 (None) 是沿数组的展平版本计算中位数。
- outndarray, 可选
用于放置结果的替代输出数组。它必须与预期输出具有相同的形状和缓冲区长度,但如果需要,将进行类型转换。
- overwrite_inputbool, 可选
如果为 True,则允许使用输入数组 (a) 的内存进行计算。输入数组将通过调用 median 进行修改。当您不需要保留输入数组的内容时,这将节省内存。将输入视为未定义,但它可能会完全或部分排序。默认值为 False。请注意,如果 overwrite_input 为 True,并且输入不是
ndarray
,则会引发错误。- keepdimsbool, 可选
如果设置为 True,则被缩减的轴将保留在结果中,作为大小为一的维度。使用此选项,结果将与输入数组正确广播。
- 返回:
- medianndarray
除非指定了 out,否则返回一个包含结果的新数组;如果指定了 out,则返回对 out 的引用。对于整数和小于
float64
的浮点数,返回数据类型为float64
>;否则,返回输入数据类型。
另请参阅
说明
给定一个向量
V
,其中包含N
个非掩码值,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)