張可 李紅兵
關鍵詞:Python;大學物理實驗成績;數(shù)據(jù)分析;數(shù)據(jù)可視化
中圖分類號:TP311.52 文獻標識碼:A
文章編號:1009-3044(2023)02-0162-03
新工科建設是教育部2017年以來開展的新興工科專業(yè)建設的研究和探索[1]。大學物理實驗課程作為高等學校理工科類專業(yè)培養(yǎng)學生實踐能力和創(chuàng)新能力的必修性基礎課程,可以訓練學生發(fā)現(xiàn)問題、分析問題和解決問題的能力,培養(yǎng)學生科學思維能力。在此,基于Python對大學物理實驗的成績進行統(tǒng)計分析,并將結(jié)果進行可視化呈現(xiàn),為優(yōu)化教風學風,優(yōu)化各專業(yè)大學物理實驗課程所開設項目提供更加客觀的依據(jù),從而有效地提高大學物理實驗課程的教學效果。
Python語言是目前比較流行的、簡單易學,并且擁有豐富的第三方庫支持的語言,其中,Pandas的數(shù)據(jù)分析,Matplotlib數(shù)據(jù)可視化,都使得Python在數(shù)據(jù)分析領域具有很好的優(yōu)勢[2-3]。本文基于Python的成績分析,主要是結(jié)合第三方庫Pandas和Matplotlib對全校學生大學物理實驗的原始數(shù)據(jù)進行處理和可視化的分析[4-5]。
1 大學物理實驗成績的數(shù)據(jù)預處理
1.1 使用Pandas讀入Excel成績
Python語言中主要使用Pandas進行數(shù)據(jù)分析,這是一個基于Numpy庫,提供了高性能,易于使用的數(shù)據(jù)結(jié)構和數(shù)據(jù)分析工具的庫,同時還提供了高效操作大型數(shù)據(jù)集所需要的工具,可以快捷高效地實現(xiàn)數(shù)據(jù)讀寫、數(shù)據(jù)清洗和數(shù)據(jù)分析的基本功能。本文使用Pandas將自201班的成績Excel文件讀入并保存為一個DataFrame結(jié)構形式[6]的二維數(shù)組,并通過values方法、loc方法或者iloc方法便捷地獲取全部或者部分的實驗成績數(shù)據(jù)。由于實驗成績由多個項目組成,意味所讀取的Excel表格包含數(shù)列比較多,可以進行特定行或者列的數(shù)據(jù)讀取、數(shù)據(jù)結(jié)構的轉(zhuǎn)換等操作,所涉及代碼主要如下所示。
import pandas as pd
scoreDF_zi201=pd.read_excel(r'F:\大學物理實驗成績分析\大學物理實驗成績分析部分數(shù)據(jù).xlsx',sheet_name='自201',header=0)
scorearr_zi171=scoreDF_zi201.values
scorearr_zdh201_average=score_zi201. loc[95, [' 實驗一','實驗二','實驗三','實驗四','實驗五','實驗六',' 實驗七','實驗八']]
1.2 成績數(shù)據(jù)的預處理
由于部分學生可能未能完成所有實驗項目,存在相應字段值為空的情形,故需要數(shù)據(jù)預處理。Fillna 方法可以按需要填入所需的數(shù)值,對缺失項填0。
2 對實驗成績的可視化處理及結(jié)果分析
在本文中,針對不同專業(yè)、同一專業(yè)不同班級以及同一班級學生的大學物理實驗成績的分析和可視化的呈現(xiàn),為優(yōu)化各專業(yè)實驗項目開設、提高大學物理實驗教學質(zhì)量提供參考性依據(jù)。
2.1 比對不同專業(yè)學生實驗成績,優(yōu)化實驗項目,促進教學質(zhì)量
使用Pandas庫中的mean方法計算相關實驗對應的列平均值,并將計算結(jié)果保存為新的行數(shù)據(jù)。然后使用Matplotlib庫繪制柱形圖,通過更加直觀地可視化圖形分析比較不同專業(yè)各實驗項目的成績,從而可以了解各專業(yè)學生對不同實驗項目的掌握程度,針對一些成績明顯薄弱的實驗,結(jié)合專業(yè)相關性,進行不同專業(yè)所開設實驗項目的優(yōu)化。本文對2020級自動化專業(yè)、土木專業(yè)和紡織專業(yè)共同開設的八個大學物理實驗項目進行各個實驗項目的平均成績比較,分析所得的柱形圖如圖1所示。
由圖1,可以明顯看出紡織專業(yè)實驗二的成績明顯較其他專業(yè)低,需要結(jié)合實驗室的開課以及各種情況分析,是否存在實驗二不適合紡織專業(yè)的情況,從而對紡織專業(yè)的實驗項目進行調(diào)整,提高實驗項目與學生專業(yè)的相關性,從而提高大學物理實驗課程的教學效果。
還可以對多專業(yè)、大批量學生實驗成績進行各實驗項目教學質(zhì)量的分析比較,譬如,實驗六的成績均分明顯低于其他實驗項目,那么就需要實際調(diào)研,是實驗教學效果存在問題,還是任課教師評分尺度把握偏差?找到原因,并促使各項目的任課教師切實提高實驗教學的效果,明確實驗成績各環(huán)節(jié)的評分尺度,在做到優(yōu)質(zhì)教學的基礎上,對所有學生提供更加公平公正的評分體系,使實驗成績更加客觀公正。
其中,主要代碼如下:
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('各專業(yè)實驗項目均分對比',font?properties=prop)
bx.set_title('2020級自動化、土木和紡織三個專業(yè)的成績均分',fontproperties=prop)
2.2 比對同專業(yè)學生實驗成績,促進教學質(zhì)量提升、提供學業(yè)預警依據(jù)
大學物理實驗課程面向的學生數(shù)量龐大,教學質(zhì)量相對均衡,評價體系比較完善。這就使得大學物理實驗成績存在較好的客觀性、公正性,使用Pandas庫對實驗成績進行統(tǒng)計分析,將數(shù)據(jù)可視化之后,可以比較客觀地說明學生的學習態(tài)度,為教學質(zhì)量提高建設和學業(yè)預警提供可靠的數(shù)據(jù)依據(jù)。
1)基于成績分析,建設班級學風
本文對2020級自動化專業(yè)不同班級的實驗成績進行分數(shù)段的分布統(tǒng)計,然后使用Matplotlib庫將統(tǒng)計結(jié)果以柱狀圖來進行表述,如圖2所示,自201和自203的成績分數(shù)段分布基本符合正態(tài)分布。自203班的中等人數(shù)比較少,主要分布在良好和優(yōu)秀分數(shù)段,整體班級學風呈現(xiàn)良好的發(fā)展態(tài)勢。自202班的成績分數(shù)段中有一個不及格、一個及格、五個中等,相對其他兩個班低分段人數(shù)比較多一點,班主任就需要關注這幾位同學的學習狀態(tài),促進班級整體學習效果的提高。
其中主要代碼如下:
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)基于大學物理實驗成績分析,輔助學生個體的學業(yè)預警
大學課程的成績主要依托于期中、期末考試的成績、平時作業(yè)和考勤成績。這就讓部分同學到了期末考試時才發(fā)現(xiàn)需要補救,但時間上已經(jīng)來不及。大學物理實驗教學的特點是整體課程的成績由所完成的各個實驗項目成績構成,在實驗即將結(jié)束時,隨機抽取20級某班甲、乙兩位同學各個實驗項目的成績與班級各實驗項目平均成績進行雷達圖的對比,如圖3 所示。
對比結(jié)果顯示,甲同學各實驗項目均已經(jīng)完成,并且每個項目的成績均高于班級均分,屬于比較良好的一種學習態(tài)勢。而乙同學各實驗項目成績整體偏低,而且相比其他學生還存在“實驗一”沒有完成的情況。因此在全校大學物理實驗課程結(jié)束之前,可以提前對該生進行學業(yè)預警,并將相關信息反饋到其所在學院,便于各方面加強對此類學生的學業(yè)管理,指導學生更好地完成相關課程。
其中,主要代碼如下:
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 結(jié)束語
本文針對2020級若干專業(yè)和班級的大學物理實驗成績進行數(shù)據(jù)可視化分析,實現(xiàn)了各專業(yè)開設實驗項目的優(yōu)化;獲取實驗項目的教學情況以及實驗教師對實驗各環(huán)節(jié)評分標準的把握情況,以及評分的規(guī)范性;獲得各班級的教學質(zhì)量提高建設情況,提供輔助的學業(yè)預警,為學生的學業(yè)發(fā)展提供積極的促進作用。
隨著Python在數(shù)據(jù)分析和機器學習領域的廣泛應用和快速發(fā)展,教師可以依托其中對課程優(yōu)化和學生培養(yǎng)進行更多的探索和實踐,以期獲得更好的教學效果,讓更多的學生能夠獲得更好的成長。