现有某班20名同学“数据挖掘”课程的成绩,分别为58,61,67,70,71,75,75,75,76,77,78,79,79,80,80,81,82,84,88,95,求该组成绩的中位数、众数和极差,并画出该组成绩的箱线图。代码
时间: 2024-09-13 10:13:38 浏览: 399
首先,我们可以通过Python的`numpy`, `pandas`, 和 `matplotlib`库来处理这个问题。假设这个成绩列表保存在一个名为`scores`的列表中:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 成绩数据
scores = [58, 61, 67, 70, 71, 75, 75, 75, 76, 77, 78, 79, 79, 80, 80, 81, 82, 84, 88, 95]
# 计算中位数
median_score = np.median(scores)
print("中位数:", median_score)
# 计算众数(最常见的分数)
mode_score = scores.mode().iloc[0] if len(scores.mode()) > 0 else None
print("众数:", mode_score)
# 计算极差(最大值减最小值)
score_range = max(scores) - min(scores)
print("极差:", score_range)
# 创建DataFrame并画箱线图
df = pd.DataFrame({'Scores': scores})
plt.figure(figsize=(10, 6))
plt.boxplot(df['Scores'])
plt.title('班级成绩箱线图')
plt.ylabel('成绩')
plt.show()
```
在这段代码中,我们首先计算了成绩的中位数、众数和极差,然后通过`pandas`将数据转换成DataFrame,最后绘制了一个箱线图来展示成绩分布的四分位数。
阅读全文