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