张可 李红兵
关键词:Python;大学物理实验成绩;数据分析;数据可视化
中图分类号:TP311.52 文献标识码:A
文章编号:1009-3044(2023)02-0162-03
新工科建设是教育部2017年以来开展的新兴工科专业建设的研究和探索[1]。大学物理实验课程作为高等学校理工科类专业培养学生实践能力和创新能力的必修性基础课程,可以训练学生发现问题、分析问题和解决问题的能力,培养学生科学思维能力。在此,基于Python对大学物理实验的成绩进行统计分析,并将结果进行可视化呈现,为优化教风学风,优化各专业大学物理实验课程所开设项目提供更加客观的依据,从而有效地提高大学物理实验课程的教学效果。
Python语言是目前比较流行的、简单易学,并且拥有丰富的第三方库支持的语言,其中,Pandas的数据分析,Matplotlib数据可视化,都使得Python在數据分析领域具有很好的优势[2-3]。本文基于Python的成绩分析,主要是结合第三方库Pandas和Matplotlib对全校学生大学物理实验的原始数据进行处理和可视化的分析[4-5]。
1 大学物理实验成绩的数据预处理
1.1 使用Pandas读入Excel成绩
Python语言中主要使用Pandas进行数据分析,这是一个基于Numpy库,提供了高性能,易于使用的数据结构和数据分析工具的库,同时还提供了高效操作大型数据集所需要的工具,可以快捷高效地实现数据读写、数据清洗和数据分析的基本功能。本文使用Pandas将自201班的成绩Excel文件读入并保存为一个DataFrame结构形式[6]的二维数组,并通过values方法、loc方法或者iloc方法便捷地获取全部或者部分的实验成绩数据。由于实验成绩由多个项目组成,意味所读取的Excel表格包含数列比较多,可以进行特定行或者列的数据读取、数据结构的转换等操作,所涉及代码主要如下所示。
import pandas as pd
scoreDF_zi201=pd.read_excel(r'F:\大学物理实验成绩分析\大学物理实验成绩分析部分数据.xlsx',sheet_name='自201',header=0)
scorearr_zi171=scoreDF_zi201.values
scorearr_zdh201_average=score_zi201. loc[95, [' 实验一','实验二','实验三','实验四','实验五','实验六',' 实验七','实验八']]
1.2 成绩数据的预处理
由于部分学生可能未能完成所有实验项目,存在相应字段值为空的情形,故需要数据预处理。Fillna 方法可以按需要填入所需的数值,对缺失项填0。
2 对实验成绩的可视化处理及结果分析
在本文中,针对不同专业、同一专业不同班级以及同一班级学生的大学物理实验成绩的分析和可视化的呈现,为优化各专业实验项目开设、提高大学物理实验教学质量提供参考性依据。
2.1 比对不同专业学生实验成绩,优化实验项目,促进教学质量
使用Pandas库中的mean方法计算相关实验对应的列平均值,并将计算结果保存为新的行数据。然后使用Matplotlib库绘制柱形图,通过更加直观地可视化图形分析比较不同专业各实验项目的成绩,从而可以了解各专业学生对不同实验项目的掌握程度,针对一些成绩明显薄弱的实验,结合专业相关性,进行不同专业所开设实验项目的优化。本文对2020级自动化专业、土木专业和纺织专业共同开设的八个大学物理实验项目进行各个实验项目的平均成绩比较,分析所得的柱形图如图1所示。
由图1,可以明显看出纺织专业实验二的成绩明显较其他专业低,需要结合实验室的开课以及各种情况分析,是否存在实验二不适合纺织专业的情况,从而对纺织专业的实验项目进行调整,提高实验项目与学生专业的相关性,从而提高大学物理实验课程的教学效果。
还可以对多专业、大批量学生实验成绩进行各实验项目教学质量的分析比较,譬如,实验六的成绩均分明显低于其他实验项目,那么就需要实际调研,是实验教学效果存在问题,还是任课教师评分尺度把握偏差?找到原因,并促使各项目的任课教师切实提高实验教学的效果,明确实验成绩各环节的评分尺度,在做到优质教学的基础上,对所有学生提供更加公平公正的评分体系,使实验成绩更加客观公正。
其中,主要代码如下:
b_zdh20=plt. bar(x2-bar_width, scorearr_zdh20_av?erage,width=bar_width,label='自动化20级')
b_tm20=plt. bar(x2, scorearr_tm20_average, width=bar_width,label='土木20级')
b_fz20=plt. bar(x2+bar_width, scorearr_fz20_aver?age,width=bar_width,label='纺织20级')
bx.set_ylabel('各专业实验项目均分对比',font?properties=prop)
bx.set_title('2020级自动化、土木和纺织三个专业的成绩均分',fontproperties=prop)
2.2 比对同专业学生实验成绩,促进教学质量提升、提供学业预警依据
大学物理实验课程面向的学生数量庞大,教学质量相对均衡,评价体系比较完善。这就使得大学物理实验成绩存在较好的客观性、公正性,使用Pandas库对实验成绩进行统计分析,将数据可视化之后,可以比较客观地说明学生的学习态度,为教学质量提高建设和学业预警提供可靠的数据依据。
1)基于成绩分析,建设班级学风
本文对2020级自动化专业不同班级的实验成绩进行分数段的分布统计,然后使用Matplotlib库将统计结果以柱状图来进行表述,如图2所示,自201和自203的成绩分数段分布基本符合正态分布。自203班的中等人数比较少,主要分布在良好和优秀分数段,整体班级学风呈现良好的发展态势。自202班的成绩分数段中有一个不及格、一个及格、五个中等,相对其他两个班低分段人数比较多一点,班主任就需要关注这几位同学的学习状态,促进班级整体学习效果的提高。
其中主要代码如下:
labels=['0-59','60-69','70-79','80-89','90-100']
segments_zi201=pd.cut(score_zi201_zongping,bins,labels=labels)
counts_zi201=pd.value_counts(segments_zi201,sort=False)
x1=np.arange(len(counts_zi201))
bar_width=0.3
fig,bx=plt.subplots()
b_zi201=plt.bar(x1-bar_width,counts_zi201,width=bar_width,label='自201')
2)基于大学物理实验成绩分析,辅助学生个体的学业预警
大学课程的成绩主要依托于期中、期末考试的成绩、平时作业和考勤成绩。这就让部分同学到了期末考试时才发现需要补救,但时间上已经来不及。大学物理实验教学的特点是整体课程的成绩由所完成的各个实验项目成绩构成,在实验即将结束时,随机抽取20级某班甲、乙两位同学各个实验项目的成绩与班级各实验项目平均成绩进行雷达图的对比,如图3 所示。
对比结果显示,甲同学各实验项目均已经完成,并且每个项目的成绩均高于班级均分,属于比较良好的一种学习态势。而乙同学各实验项目成绩整体偏低,而且相比其他学生还存在“实验一”没有完成的情况。因此在全校大学物理实验课程结束之前,可以提前对该生进行学业预警,并将相关信息反馈到其所在学院,便于各方面加强对此类学生的学业管理,指导学生更好地完成相关课程。
其中,主要代码如下:
data2=score_hg202_arr[5,:].ravel()
dim_num = len(data1)
angles = np.linspace(0,2*np.pi,dim_num,endpoint=False)
angles = np.concatenate((angles,[angles[0]]))
student2=scoreDFLD_zi202.loc[5,['学号']]
student2=int(student2[0]%100)
student2='某班0'+str(student2)+'号同学(乙)各实验项目成绩'
plt.polar(angles,data2,'o-',linewidth=2, label=stu?dent2_label)
plt.fill(angles,data2, alpha=0.25)
3 结束语
本文针对2020级若干专业和班级的大学物理实验成绩进行数据可视化分析,实现了各专业开设实验项目的优化;获取实验项目的教学情况以及实验教师对实验各环节评分标准的把握情况,以及评分的规范性;获得各班级的教学质量提高建设情况,提供辅助的学业预警,为学生的学业发展提供积极的促进作用。
随着Python在数据分析和机器学习领域的广泛应用和快速发展,教师可以依托其中对课程优化和学生培养进行更多的探索和实践,以期获得更好的教学效果,让更多的学生能够获得更好的成长。