运用字典 列表,集合等方法处理
统计每名学生的平均成绩,并统计每门课程的平均分。
姓名 高等数学 计算机 体育
张卫民 88 93 90
刘振华 83 92 95
赵强国 90 85 85
可以先将数据存储在字典中,字典的键为学生姓名,值为包含其各科成绩的列表。然后可以使用列表和集合方法计算平均成绩。
scores = {
'张卫民': [88, 93, 90],
'刘振华': [83, 92, 95],
'赵强国': [90, 85, 85]
}
# 计算每个学生的平均成绩
for name, score_list in scores.items():
avg_score = sum(score_list) / len(score_list)
print(f"{name}的平均成绩为:{avg_score:.2f}")
# 计算每门课程的平均分
math_scores = [score[0] for score in scores.values()]
math_avg = sum(math_scores) / len(math_scores)
print(f"高等数学的平均分为:{math_avg:.2f}")
comp_scores = [score[1] for score in scores.values()]
comp_avg = sum(comp_scores) / len(comp_scores)
print(f"计算机的平均分为:{comp_avg:.2f}")
sport_scores = [score[2] for score in scores.values()]
sport_avg = sum(sport_scores) / len(sport_scores)
print(f"体育的平均分为:{sport_avg:.2f}")
一次遍历 单独计算每个学生平均分 将每门科目的总分相加起来 最后遍历完后再计算每一门科目的平均分
1、MSE、RMSE、MAE、MAPE(ndarray)
# coding=utf-8
import numpy as np
from sklearn import metrics
# MAPE需要自己实现
def mape(y_true, y_pred):
return np.mean(np.abs((y_pred - y_true) / y_true))
y_true = np.array([1.0, 5.0, 4.0, 3.0, 2.0, 5.0, -3.0])
y_pred = np.array([1.0, 4.5, 3.8, 3.2, 3.0, 4.8, -2.2])
# MSE
print('MSE:',metrics.mean_squared_error(y_true, y_pred))
# RMSE
print('RMSE:',np.sqrt(metrics.mean_squared_error(y_true, y_pred)))
# MAE
print('MAE:',metrics.mean_absolute_error(y_true, y_pred))
# MAPE
print('MAPE:',mape(y_true, y_pred))
2、R2-score
from sklearn.metrics import r2_score
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
print('R2-score:',r2_score(y_true, y_pred))#list