中位数是一组数据排序后位于中间的数值。如果数据个数是奇数,中位数就是正中间的那个数;如果数据个数是偶数,中位数则是中间两个数的平均值。
计算步骤
排序数据
将所有数值按照大小顺序排列。
确定中位数位置
如果数据个数是奇数,中位数是位于 `(数据个数 + 1) / 2` 位置的数。
如果数据个数是偶数,中位数是位于 `数据个数 / 2` 和 `数据个数 / 2 + 1` 位置的两个数的平均值。
示例
奇数个数据
假设有一组数据:`[3, 1, 4, 2, 5]`
1. 排序后得到:`[1, 2, 3, 4, 5]`
2. 数据个数为5(奇数),中位数位置为 `(5 + 1) / 2 = 3`
3. 中位数是排序后位于第3位的数,即 `3`
偶数个数据
假设有一组数据:`[6, 2, 4, 8]`
1. 排序后得到:`[2, 4, 6, 8]`
2. 数据个数为4(偶数),中位数位置为 `4 / 2 = 2` 和 `4 / 2 + 1 = 3`
3. 中位数是排序后位于第2位和第3位的数的平均值,即 `(4 + 6) / 2 = 5`
代码实现
```python
def find_median(data):
sorted_data = sorted(data)
n = len(sorted_data)
if n % 2 == 1:
数据个数为奇数
return sorted_data[n // 2]
else:
数据个数为偶数
mid1 = n // 2 - 1
mid2 = n // 2
return (sorted_data[mid1] + sorted_data[mid2]) / 2
示例数据
data1 = [3, 1, 4, 2, 5]
data2 = [6, 2, 4, 8]
print("奇数个数据的中位数:", find_median(data1)) 输出: 3
print("偶数个数据的中位数:", find_median(data2)) 输出: 5.0
```
通过以上步骤和示例,你可以轻松地计算出任何一组数据的中位数。