999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python+Pandas+Matplotlib的學生成績分析

2020-11-20 10:50:52仇烈偉
裝備維修技術 2020年7期

摘要:目前高校考試成績的分析,主要是借助于 Excel 等對學生的成績進行簡單的統計,但在數據量較大時,在Excel中的操作就有些過于繁瑣。這里以一個虛擬的班級的Java考試成績為例,使用當前熱門的數據分析語言Python,并且綜合運用了Python的第三方庫pandas和matplotlib進行數據可視化分析,實現學生數據的讀入、數據統計、排序、分組以及圖形輸出平均成績、不及格人數等之外,還將分析出班級學生知識點掌握情況。期望能為教師調整教學安排與教學方法提供參考,從而提升教學質量。

關鍵詞:Python;Pandas;Matplotlib

1前言

在當前這個信息時代,因為計算機強大的數據處理能力和網絡迅捷便利的傳播方式,學生成績信息的管理、統計和分析已經非常方便。成績是各大學校教育教學環節中的一項重要指標,是學生學習效果、學習態度的主要體現。對考試成績的分析,能夠使學校檢測出最近一段時間之內學生的學習情況,學習態度,還能很大程度的反映出教師的教學質量、治學態度和其教學方法的科學性,以及學校對學生教學管理水平。在對考試成績進行數據分析和評價后,充分發揮它的反饋作用,以此加強教學管理,改進教學方法,提高教學質量。同時也能夠指導考試的命題工作,提高考試檢測質量,還能夠加強學校的題庫建設。

2 Python及開發環境簡介

2.1 Python簡介

Python是一種跨平臺的計算機程序設計語言。 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。Python主要運用于科學計算和統計、人工智能、桌面界面開發、軟件開發、后端開發、網絡爬蟲等等方面。Python設計上的風格是清晰劃一的,這使得Python成為一門易讀、易維護,并且被大量用戶所歡迎的、用途廣泛的語言。Python語言的優點有很多,程序員們選擇使用它作為開發語言大多是因為其簡單易學、免費開源、還有著許多功能強大第三方庫。

2.2開發環境PyCharm Community Edtion(社區版)

PyCharm是一個由JetBrains打造的 Python 集成開發環境,也是使用Python語言的編程人員最常用的一款Python IDE。PyCharm分為社區版、專業版和教育版,教育版適合教學使用,專業版功能最全的收費版,社區版就是專業版的閹割版本,但解決一般問題已經足夠,且是免費的,本案例就是使用的社區版。PyCharm在擁有調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制這些一般集成開發環境就擁有的功能的同時,它還提供了很多很好的功能用于Django(一種基于Python的Web開發框架)開發,而且大多數Python的第三方庫可以在PyCharm中直接下載,非常便利。

3 學生成績分析的設計與實現

3.1數據導入

數據導入是程序設計的開始,有了數據才能進行處理。本程序需要處理的數據信息是學生的成績信息,這些成績信息是由老師在學生考試過后整理得到。得出成績后,將成績按照學號,姓名,性別,成績的順序依次輸入到cjb.xlsx表格文件中保存。將表格移動到程序所在的目錄下,在程序中即可使用pandas庫中的讀取函數之一的read_excel讀入數據。主要代碼如下所示。

import pandas as pd

data = pd.read_excel(rcjb.xlsx)

print(data)

執行后,得到的數據如下圖3.1所示:

3.2 成績處理

3.2.1 基本統計

DataFrame.describe()是pandas中一個能對數據進行快速統計的方法,用它可以完成對數據的人數、平均分、最高分、最低分,百分位數值的統計。代碼如下:

print(data['成績'].describe())

如果只想要單獨得到平均分或最低分、最高分等數據,只需將代碼最后的describe()變成mean()或min()、max()即可。

得到的數據如下下圖3.2所示:

通過圖像,我們可以得到該班級有10人參加考試,班級平均分為77分,較為良好;最高分90,最低分65,在后續教學中需要對65分的同學進行輔導幫助;成績標準差為7.93,較為平穩,說明該班級學生總體差距不是很大。

3.2.2 成績排序

DataFrame.sort_value()是pandas中的排序方法,使用它既可以根據列數據,也可根據行數據排序。本案例中自然是根據學生成績進行排序,降序排序代碼如下:

total=data.sort_values(by='成績',ascending=False)

若想要成績升序排序,只需要把代碼中ascending=False改為ascending=True即可。

得到的數據如下圖3.3所示:

通過排序輸出后,我們得到班級第一名為“楊晨輝”同學,班級擇優時可以優先考慮;其中,85分以上的優秀同學有兩名,可以鼓勵他們參加相關大賽,開拓自己視野。

3.2.3 分組統計

DataFrame.groupby()是pandas中的分組方法。本案例中是以學生性別進行的分組,代碼如下:

sexdata=data[data['性別']=='男']

group=sexdata.groupby(by='性別').mean()['成績']

print(group)

女生的分組同理,將代碼中的“男”改成“女”即可,如果還想要最高分等其他數據,那么把代碼中的mean()改為max()或其他即可。

執行后就能分別得男生、女生的平均成績信息,結果如下圖3.4、圖3.5所示:

通過圖像,我們得到女生的平均成績比男生高,說明女生在本科目的學習能力比男生強或女生的學習態度大多比男生端正,需要適當督促該班級男生的學習,多讓他們在課后進行交流促進。

3.3 學生成績的圖形輸出

條形圖中,橫軸上的數據是一個獨立且具體的數據,它們之間是有空隙的,本案例中的條形圖的橫軸就是用來表示知識點這個具體數據名稱,而直方圖中,橫軸上的數據是連續的,是一個范圍,它們中間不存在空隙,因此我用它的橫軸來表示各分數段;條形圖是用條形的高度表示頻數的大小,案例中的條形圖的高度只有0和1,用來表示掌握與否,而直方圖是用長方形的面積表示頻數,也就是人數。

3.3.1直方圖(學生成績分布)

直方圖是數值數據分布精確的圖形表示。直方圖一般用橫軸表示數據類型,縱軸表示分布情況。本案例用橫軸表示成績分數分布,用縱軸表示人數分布。代碼如下:

plt.hist(data[‘成績‘],5)

plt.show()

輸出圖像如下圖3.6所示:

從這個圖中可以得到,65~70分之間的有2人,70~75分之間有1人,75~80之間有3人,80~85之間有2人,85~90之間有2人,該班級學生成績分布較為均勻,其中75分以上成績良好的學生居多數,鼓勵他們繼續保持,在后續的課題講解中也可以嘗試發散講解,拓展該班學生的知識面。

3.3.2條形圖(學生知識點掌握情況)

有時在圖像輸出之前,有些數據可能從原始材料中不能直接獲得,這時就需要對數據進行預處理,通過處理得到自己想要的信息后再通過圖像輸出。本案例中,需要通過圖像輸出的是本班級學生知識點的掌握情況,而一般老師通過學生試卷只能得到學生的每題得分情況,這時就需要對數據進行預處理。將每題的知識點列出來,得分超過知識點總分60%的記為1,表示基本掌握;得分沒有超過知識點總分的60%的記為0,每個學生的掌握情況處理完成后,再進行班級學生成績的處理,將班級學生知識點得分情況記為1的人數超過班級總人數60%的再次記為1,表示班級基本掌握本知識點;如果沒有超過60%,則記為0,表示班級沒有掌握本知識點。這些數據都處理完成后,就可以通過Matplotlib進行圖像輸出了。圖像輸出的代碼如下:

font=FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf',size=12)

points=['類','包','接口','數組']

con=['1','1','0','1']

plt.bar(range(len(points)),con)

plt.xticks(range(len(points)),points,FontProperties=font)

plt.show()

當然,如果想要了解更多知識點的掌握情況,只需要在知識點后面再次添加即可。

輸出圖像如下圖3.7所示:

從此圖中,我們可以得到本班級學生對“接口”知識點的掌握不夠好,老師可以以此來制定下一步的教學計劃,對該班級學生在此知識點上進行詳細講解、加深訓練以此加強本班學生對于該知識點的掌握。

4結語

Python發展接近三十年,如今已經確實成為了編程語言中的“紅人”。很多程序員都在使用Python,因為Python涉及范圍廣泛,從數據處理到人工智能,從Web解析到網絡空間,從人機交互到藝術設計,門類眾多且容易上手,學會了Python,可以大幅提高IT人的自身競爭力。隨著時代的發展越來越快,市場需求越來越大,Python的應用也越來越廣泛。在如今這個大數據的信息化時代,計算機技術和網絡技術的發展一天比一天迅速,而這些技術的快速發展便是來自于大眾對其的需求愈來愈高,對其的依賴性越來越大。因此,為了不被這個時代淘汰,開發者們也需要不斷的學習,不斷地突破自我。

參考文獻:

[1]劉雨珂,王平.基于Python+Pandas+Matplotlib的學生成績數據統計與圖形輸出實現[J].福建電腦,2017(11).

[2]高紅兵.基于Pandas大學生考試成績分析[J].內江科技.2017(12)。

[3]王媛.基于Python的學生綜合成績分析程序設計[J].信息與電腦(理論版),2019(11):99-101.

作者簡介:仇烈偉(1997,9-),男,漢族,四川省安岳縣,學生,本科,荊楚理工學院,研究方向:數字媒體技術方向

主站蜘蛛池模板: 丰满人妻久久中文字幕| 国产精品内射视频| 亚洲激情区| 在线日本国产成人免费的| 国产精品极品美女自在线| 四虎国产精品永久一区| 日韩资源站| 国产午夜无码专区喷水| 国产va在线观看| 伊人激情综合| 久久久精品无码一二三区| 五月婷婷综合色| 五月天香蕉视频国产亚| 91成人在线观看视频| 国产精品理论片| 久久视精品| 精品视频91| 黄片一区二区三区| 亚洲av无码专区久久蜜芽| 午夜福利网址| 久久久成年黄色视频| 国产精品亚洲欧美日韩久久| 精品少妇人妻av无码久久| 激情无码字幕综合| 97国产在线视频| 熟妇人妻无乱码中文字幕真矢织江| 天天综合天天综合| 高清久久精品亚洲日韩Av| 成人毛片免费在线观看| 啪啪国产视频| 国产福利免费在线观看| 曰AV在线无码| 99人妻碰碰碰久久久久禁片| 在线免费不卡视频| 91视频日本| 国产三级a| 国产成本人片免费a∨短片| 自拍偷拍欧美日韩| 国产成人精品男人的天堂| 欧洲极品无码一区二区三区| 婷婷伊人久久| 亚洲aaa视频| 在线高清亚洲精品二区| 亚洲最猛黑人xxxx黑人猛交 | 亚洲第一精品福利| 久久精品国产精品国产一区| 国产亚洲现在一区二区中文| 久久综合AV免费观看| 亚洲国产天堂久久九九九| 欧美在线精品怡红院| 国产欧美在线观看一区 | 亚洲日本中文字幕天堂网| 一本色道久久88| 伊人婷婷色香五月综合缴缴情| 精品撒尿视频一区二区三区| 国产人人乐人人爱| 成人小视频网| jizz在线观看| 国产成人一区免费观看| 日韩不卡高清视频| 欧美不卡视频在线| 亚洲综合婷婷激情| 日韩欧美国产三级| 亚洲欧美不卡视频| 一区二区三区国产精品视频| 欧美日韩精品一区二区在线线| 国产十八禁在线观看免费| 国产欧美视频一区二区三区| 视频在线观看一区二区| 伊人成色综合网| 亚洲女同一区二区| 在线观看国产黄色| 欧美天堂在线| 99久久精品免费视频| 国产97色在线| 精品国产福利在线| 亚洲无码视频一区二区三区| 国产人免费人成免费视频| 99999久久久久久亚洲| 国产JIZzJIzz视频全部免费| 青青青亚洲精品国产| 亚洲欧美另类日本|