python现有某班20名同学“数据挖掘”课程的成绩,分别为58,61,67,70,71,75,75,75,76,77,78,79,79,80,80,81,82,84,88,95,求该组成绩的中位数、众数和极差,并画出该组成绩的箱线图
时间: 2024-11-26 18:04:43 浏览: 21
首先,让我们计算这个班级“数据挖掘”课程成绩的中位数、众数和极差:
1. **中位数**:将一组数值从小到大排列,位于中间位置的数就是中位数。这里有20个数据点,所以中位数应该是第10和第11个数的平均值,因为20是偶数。
中位数 = (75 + 76) / 2 = 75.5
2. **众数**:出现次数最多的数就是众数。从给定的数据看,75出现了三次,最多,所以众数是75。
3. **极差**:最大值减去最小值。这里最大的数是95,最小的是58。
极差 = 95 - 58 = 37
对于箱线图的绘制,Python可以使用matplotlib库,假设我们已经导入了这个库:
```python
import matplotlib.pyplot as plt
import numpy as np
# 给定的成绩列表
scores = [58, 61, 67, 70, 71, 75, 75, 75, 76, 77, 78, 79, 79, 80, 80, 81, 82, 84, 88, 95]
# 计算四分位数
q1 = np.percentile(scores, 25)
q3 = np.percentile(scores, 75)
# 箱体范围(IQR = Q3 - Q1)
iqr = q3 - q1
# 上限和下限
upper_limit = q3 + 1.5 * iqr
lower_limit = q1 - 1.5 * iqr
# 找出异常值(超出上限和下限的数据)
outliers = [x for x in scores if x < lower_limit or x > upper_limit]
# 删除异常值并绘制箱线图
scores_cleaned = [x for x in scores if x not in outliers]
plt.boxplot(scores_cleaned)
plt.title("数据挖掘课程成绩箱线图")
plt.ylabel("分数")
plt.show()
```
这将显示一个箱线图,表示成绩分布情况,包括中位数、上下四分位数以及可能的异常值。
阅读全文