numpy.ma.median#

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

计算沿指定轴的中位数。

返回数组元素的 S 中位数。

参数:
a类数组对象

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

axisint, optional

计算中位数的轴。默认值(None)是沿数组的展平版本计算中位数。

outndarray,可选

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

overwrite_input布尔值,可选

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

keepdimsbool,可选

如果设置为 True,则被缩减的轴将保留在结果中,其大小为 1。使用此选项,结果将能够与输入数组正确广播。

返回:
medianndarray

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

另请参阅

mean

备注

给定一个包含 N 个非掩码值的向量 VV 的中位数是 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)