python取列表中位数_在Python中查找列表的中位数

这篇博客介绍了在Python中找到列表中位数的多种方法,包括使用Python 3.4的`statistics.median`函数,对于Python 2.x可以使用`numpy.median()`或自定义函数。还讨论了优化的快速选择算法以及避免使用内置`list`名称的重要性。提供了多个自定义函数示例,以适应不同Python版本和性能需求。
摘要由CSDN通过智能技术生成

Python 3.4有statistics.median :

返回数字数据的中位数(中间值)。

当数据点数为奇数时,返回中间数据点。 当数据点的数量是偶数时,通过取两个中间值的平均值来插值中值:

>>> median([1, 3, 5]) 3 >>> median([1, 3, 5, 7]) 4.0

用法:

import statistics items = [1, 2, 3, 6, 8] statistics.median(items) #>>> 3

types也很小心:

statistics.median(map(float, items)) #>>> 3.0 from decimal import Decimal statistics.median(map(Decimal, items)) #>>> Decimal('3')

对于python-2.x :

使用numpy.median()来创build一个单行的函数:

>>> from numpy import median >>> median([1, -4, -1, -1, 1, -3]) -1.0

或者, 写一个函数 :

def median(lst): n = len(lst) if n < 1: return None if n % 2 == 1: return sorted(lst)[n//2] else: return sum(sorted(lst)[n//2-1:n//2+1])/2.0

>>> median([-5, -5, -3, -4, 0, -1]) -3.5

对于python-3.x ,使用statistics.median :

>>> from statistics import median >>> median([5, 2, 3, 8, 9, -2]) 4.0

sorted()函数对此非常有帮助。 使用sorting后的函数对列表进行sorting,然后简单地返回中间值(或者如果列表中包含偶数个元素,则平均中间两个值)。

def median(lst): sortedLst = sorted(lst) lstLen = len(lst) index = (lstLen -

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值