在 Python 中查找列表的中位数

Manav Narula 2023年1月30日
  1. 在 Python 中使用 statistics 模块查找列表的中位数
  2. 在 Python 中使用 numpy.percentile 函数寻找一个列表的中位数
  3. 在 Python 中使用自定义代码查找一个列表的中位数
在 Python 中查找列表的中位数

在统计学和概率的世界里,一组给定观测值的中值是中间元素。当元素总数是奇数和偶数时,它的计算方法是不同的。

Python 经常被用于数据和统计分析。本教程将介绍如何用 Python 计算列表的中位数。

在 Python 中使用 statistics 模块查找列表的中位数

在 Python 中,我们有 statistics 模块,它有不同的函数和类来从一组数据中找到不同的统计值。这个库中的 median() 函数可以用来寻找一个列表的中位数。

由于中位数基于排序的数据列表上的,所以 median() 函数会自动对其进行排序,并返回中位数。例如

import statistics

lst = [7, 8, 9, 5, 1, 2, 2, 3, 4, 5]

print(statistics.median(lst))

输出:

4.5

在 Python 中使用 numpy.percentile 函数寻找一个列表的中位数

NumPy 模块中,我们有一些函数可以从一个数组中找到百分位值。数据的中位数是第 50 个百分位值。为了找到这个值,我们可以使用 NumPy 模块中的 percentile() 函数,计算出第 50 个百分位值。请看下面的代码。

import numpy as np

a = np.array([7, 8, 9, 5, 1, 2, 2, 3, 4, 5])
median_value = np.percentile(a, 50)
print(median_value)

输出:

4.5

在 Python 中使用自定义代码查找一个列表的中位数

我们还可以使用 Python 公式来查找数据的中位数,并创建用户定义的函数。例如,

lst = [7, 8, 9, 5, 1, 2, 2, 3, 4, 5]


def median(l):
    half = len(l) // 2
    l.sort()
    if not len(l) % 2:
        return (l[half - 1] + l[half]) / 2.0
    return l[half]


print(median(lst))

输出:

4.5

如果列表的长度是奇数,则列表的中位数是排序列表的中间元素;否则,它是两个中间元素的平均值。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Math