📅  最后修改于: 2023-12-03 15:27:37.012000             🧑  作者: Mango
算术中位数是给定一组数值中间的值。具体来说,它是这组数据中所有数值排列后在正中间的值,如果数据为偶数个,那么算术中位数是中间两个数的平均值。
在统计学中,算术中位数常常用作比平均数更为稳健和鲁棒的统计指标,特别是当存在异常值时。
计算一个数值序列的算术中位数通常采用以下步骤:
将序列中的数值按照升序排序。
如果序列中的数值个数是奇数,算术中位数是序列中间的那个数;如果是偶数,算术中位数是中间两个数的平均值。
实现这个算法的代码片段如下:
def median(nums):
sorted_nums = sorted(nums)
n = len(sorted_nums)
if n % 2 == 0:
# 如果序列长度为偶数
mid = n // 2
return (sorted_nums[mid - 1] + sorted_nums[mid]) / 2
else:
# 如果序列长度为奇数
mid = n // 2
return sorted_nums[mid]
这个函数接受一个列表 nums
,返回它的算术中位数。首先将 nums
排序,然后判断序列长度是奇数还是偶数,再分别计算出中位数。这个算法的时间复杂度是 $O(n \log n)$,因为排序需要这么长时间。
以下是使用示例:
>>> nums = [1, 2, 3, 4, 5]
>>> median(nums)
3
>>> nums = [1, 2, 3, 4, 5, 6]
>>> median(nums)
3.5
>>> nums = [4, 1, 3, 2, 5]
>>> median(nums)
3
算术中位数是一种用于描述一组数据的集中趋势的统计指标。它比平均数更为稳健和鲁棒,因为它受异常值的影响较小。在实现计算算术中位数的算法时,需要先将数据排序,再根据序列长度的奇偶性计算出中位数。