Python numpy.median函数详解:参数、用法与内存优化

Aria
Aria
发布时间:2026-10-13 | 3人浏览过
原创

本文详解Python中numpy.median函数的用法,涵盖axis指定计算轴、out指定输出数组及keepdims保持维度等核心参数。重点解析overwrite_input=True的内存优化机制,通过代码示例展示如何在牺牲原数组数据的前提下节省内存,适用于大规模数据处理场景。

在Python的numpy模块中,median函数主要用于计算数值数组的中位数。

该函数允许用户指定特定的轴(axis)来进行中位数计算,从而适应不同维度的数据需求。

函数的返回值是一个包含数组元素中位数的新数组或标量。

numpy.median的标准函数接口定义如下:

median(a, 
axis=None, 
out=None,
overwrite_input=False, 
keepdims=False)

以下是该函数各个参数的详细说明:

a:这是必需的输入参数,代表需要进行中位数计算的输入数组。

axis:用于指定计算中位数所沿的轴。例如,当输入为二维数组时,设置axis=0表示沿行方向计算(即对每一列求中位数),而axis=1则表示沿列方向计算(即对每一行求中位数)。若未指定,则对整个数组展平后计算。

out:这是一个可选参数,用于指定存放计算结果的数组。该输出数组必须具有与预期结果完全相同的形状和缓冲区长度。如果提供,计算结果将直接写入该数组。

overwrite_input:这是一个布尔型参数,默认值为False。当设置为True时,函数将直接在输入数组的内存中进行计算,这意味着原始数组的数据在计算后将被覆盖且无法保留。虽然这会丢失原始数据,但其主要优势在于显著节省内存资源,适用于对内存敏感的大规模数据处理场景。若保持默认值False,则会在内存中创建副本进行计算,保留原始数组不变。

keepdims:这是一个布尔型参数,默认值为False。如果设置为True,则在计算中位数时,被约简的那个轴将保留在结果中,其尺寸显示为1。这使得输出数组可以与输入数组进行广播操作。

>>> a = np.array([[10, 7, 4], [3, 2, 1]])
>>> a
array([[10, 7, 4],
    [ 3, 2, 1]])
>>> np.median(a)
3.5
>>> np.median(a, axis=0)
array([ 6.5, 4.5, 2.5])
>>> np.median(a, axis=1)
array([ 7., 2.])
>>> m = np.median(a, axis=0)
>>> out = np.zeros_like(m)
>>> np.median(a, axis=0, out=m)
array([ 6.5, 4.5, 2.5])
>>> m
array([ 6.5, 4.5, 2.5])
>>> b = a.copy()
>>> np.median(b, axis=1, overwrite_input=True)
array([ 7., 2.])
>>> assert not np.all(a==b)
>>> b = a.copy()
>>> np.median(b, axis=None, overwrite_input=True)
3.5

以上关于Python数据处理中numpy.median函数的实例讲解到此结束,希望能为您的编程工作提供有益参考。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表