劉倩,楊夢(mèng)竹,文海洋
(湖南工程學(xué)院計(jì)算科學(xué)與電子學(xué)院,湖南 湘潭 411100)
Python 作為一種高級(jí)編程語(yǔ)言,具有易學(xué)、易用、易擴(kuò)展等特點(diǎn),適合于初學(xué)者和專(zhuān)業(yè)人士使用[1-2]。在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中,Python可以被用于數(shù)據(jù)處理、可視化、統(tǒng)計(jì)分析等方面。
在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中,數(shù)據(jù)處理是非常重要的環(huán)節(jié),在教學(xué)中可以使用NumPy 庫(kù)進(jìn)行數(shù)據(jù)處理。NumPy是Python中科學(xué)計(jì)算的核心庫(kù)之一,它提供了一種高效的多維數(shù)組對(duì)象ndarray,以及用于數(shù)組計(jì)算的函數(shù)和工具[3]。在數(shù)據(jù)處理中,NumPy 可以進(jìn)行包括數(shù)據(jù)的讀取、清洗、轉(zhuǎn)換、分析等,主要表現(xiàn)在如下幾個(gè)方面:
數(shù)據(jù)讀取。NumPy 中的loadtxt 函數(shù)可以用于從文本文件中讀取數(shù)據(jù)。這對(duì)于從實(shí)驗(yàn)數(shù)據(jù)或外部數(shù)據(jù)源中加載數(shù)據(jù)非常有用。
數(shù)據(jù)清洗。NumPy 提供了一些函數(shù)用于數(shù)據(jù)清洗,如isnan、isinf 和isfinite。這些函數(shù)可以檢查數(shù)組中的元素是否為NaN、無(wú)窮大或有限值。
數(shù)據(jù)轉(zhuǎn)換。NumPy提供了函數(shù)用于數(shù)組的轉(zhuǎn)換,如reshape、transpose 和flatten。這些函數(shù)可以用于改變數(shù)組的形狀、維度和排列順序。
數(shù)據(jù)分析。NumPy 中的統(tǒng)計(jì)模塊提供了各種函數(shù),如mean、std、var、cov 和corrcoef 等,用于計(jì)算數(shù)組的統(tǒng)計(jì)量。這些函數(shù)可以用于分析數(shù)據(jù)的分布、趨勢(shì)和關(guān)系。
總之,NumPy在概率論中具有廣泛的數(shù)據(jù)處理應(yīng)用,可以幫助研究者更快、更準(zhǔn)確地進(jìn)行數(shù)據(jù)處理。
在教學(xué)中,數(shù)據(jù)的可視化同樣是非常重要的,它可以幫助人們更好地了解數(shù)據(jù)的分布特征。matplotlib是Python中最流行的數(shù)據(jù)可視化庫(kù)之一,它提供了豐富的繪圖功能和靈活的配置選項(xiàng),可以用于制作各種靜態(tài)圖表、動(dòng)態(tài)圖表和交互式圖表[4]。在概率論中,matplotlib 可以用于展示數(shù)據(jù)的分布、趨勢(shì)和關(guān)系等,主要有以下特性:
繪圖功能。matplotlib提供了各種繪圖功能,如折線(xiàn)圖、條形圖、散點(diǎn)圖、餅圖、直方圖、等高線(xiàn)圖、熱力圖等。這些繪圖功能可以用于數(shù)據(jù)的可視化和分析,幫助人們更好地理解數(shù)據(jù)的特征和規(guī)律。
圖表樣式和配置。matplotlib 提供了豐富的圖表樣式和配置選項(xiàng),可以靈活地設(shè)置圖表的大小、顏色、字體、線(xiàn)型、標(biāo)注等。這些配置選項(xiàng)可以制作美觀、易讀、易懂的圖表,增強(qiáng)數(shù)據(jù)的可視化效果。
動(dòng)態(tài)圖表和交互式圖表。matplotlib 支持制作動(dòng)態(tài)圖表和交互式圖表,可以讓數(shù)據(jù)的可視化更加生動(dòng)、直觀。通過(guò)matplotlib 的動(dòng)態(tài)圖表和交互式圖表,可以更好地展示數(shù)據(jù)的變化和趨勢(shì),提高數(shù)據(jù)的可視化效果和可交互性。
高度可定制性。matplotlib 提供了高度可定制性的圖表功能,可以讓人們根據(jù)自己的需求和喜好進(jìn)行圖表的定制。通過(guò)matplotlib的接口和工具,可以自由地制作出滿(mǎn)足自己需求的圖表,增強(qiáng)數(shù)據(jù)的可視化效果和表現(xiàn)力。
因此,matplotlib在概率論中具有廣泛的數(shù)據(jù)可視化應(yīng)用,可以幫助研究者更好地理解數(shù)據(jù)的分布、趨勢(shì)和關(guān)系,從而更好地進(jìn)行概率計(jì)算、數(shù)據(jù)分析和模型構(gòu)建。
在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中,統(tǒng)計(jì)分析是非常重要的。scipy是一個(gè)Python庫(kù),提供了各種統(tǒng)計(jì)分析函數(shù)和工具。借助scipy 可以用于進(jìn)行各種統(tǒng)計(jì)分析,如假設(shè)檢驗(yàn)、擬合分布、計(jì)算置信區(qū)間等,具體來(lái)說(shuō)有以下幾個(gè)方面:
假設(shè)檢驗(yàn)。scipy 中的ttest 函數(shù)和chisquare 函數(shù)可以用于進(jìn)行單樣本或雙樣本的假設(shè)檢驗(yàn)。這些函數(shù)可以計(jì)算樣本的均值、標(biāo)準(zhǔn)差和置信區(qū)間等,從而判斷樣本是否符合某個(gè)分布或假設(shè)。
擬合分布。scipy 中的fit 函數(shù)可以用于擬合數(shù)據(jù)到特定的分布模型。這些函數(shù)可以計(jì)算數(shù)據(jù)的最大似然估計(jì)、參數(shù)估計(jì)和擬合優(yōu)度等指標(biāo),從而確定數(shù)據(jù)最符合的分布模型。
偏度峰度。scipy中的skew函數(shù)和kurtosis函數(shù)可以用于計(jì)算數(shù)據(jù)的偏度和峰度。這些函數(shù)可以用于分析數(shù)據(jù)的分布形態(tài)、非正態(tài)性和異常值情況。
綜上,scipy 在概率論中具有廣泛的統(tǒng)計(jì)分析應(yīng)用,可以幫助研究者更好地理解數(shù)據(jù)的分布、趨勢(shì)和關(guān)系,從而更好地進(jìn)行概率計(jì)算、數(shù)據(jù)分析和模型構(gòu)建。
以上三個(gè)方面是Python 在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中的主要應(yīng)用。下面,將通過(guò)一個(gè)具體實(shí)例來(lái)說(shuō)明Python在教學(xué)中的應(yīng)用。
在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中,概率分布是非常重要的內(nèi)容??梢允褂肞ython 來(lái)對(duì)概率分布進(jìn)行可視化。
通過(guò)頻率方法來(lái)近似計(jì)算0-1分布、二項(xiàng)分布以及幾何分布的分布律。頻率方法是一種從大量重復(fù)試驗(yàn)中推斷概率的方法。頻率方法的基本思想是,通過(guò)大量的重復(fù)試驗(yàn),觀察某一事件發(fā)生的頻率,并將該頻率作為該事件發(fā)生的概率的近似值。具體來(lái)說(shuō),頻率方法將概率定義為某一事件在大量試驗(yàn)中出現(xiàn)的頻率的極限,即事件發(fā)生的次數(shù)除以試驗(yàn)次數(shù)的極限[5]。頻率方法的優(yōu)點(diǎn)是簡(jiǎn)單易懂,適用于大量重復(fù)試驗(yàn)的情況。因此,該方法實(shí)際上思想非常樸素,而通過(guò)計(jì)算機(jī)很容易實(shí)現(xiàn)大量的重復(fù)試驗(yàn)。因此,借助Python來(lái)完成該模擬。
首先,借助NumPy中的random函數(shù)構(gòu)造一個(gè)Bernoulli 試驗(yàn)函數(shù)bernoulli_experiment(p),該函數(shù)每次調(diào)用的結(jié)果都是相互獨(dú)立的,且返回值是一個(gè)隨機(jī)變量X~B(1,p)。因?yàn)閞andom函數(shù)是一個(gè)能夠隨機(jī)等概率地生成(0,1)區(qū)間上的隨機(jī)數(shù)的函數(shù),所以每次調(diào)用該函數(shù)時(shí),它都會(huì)生成一個(gè)在(0,1)區(qū)間上的隨機(jī)數(shù),并且每個(gè)隨機(jī)數(shù)的概率相等,即概率密度函數(shù)為均勻分布。因此,使用以下代碼實(shí)現(xiàn):
由于該函數(shù)要進(jìn)行大量調(diào)用,因此將其實(shí)現(xiàn)為生成器函數(shù)。
(3)通過(guò)服務(wù)名(service_name)和服務(wù)方法(service_method),查找已經(jīng)注冊(cè)的rpc服務(wù);
然后,我們即可使用該函數(shù)構(gòu)造一個(gè)n 重Bernoulli試驗(yàn)函數(shù)B(n,p)和第一次成功試驗(yàn)函數(shù)Geo(p):
基于同樣的原因,將其實(shí)現(xiàn)為生成器函數(shù)。接下來(lái)只需設(shè)定試驗(yàn)次數(shù),并對(duì)結(jié)果進(jìn)行統(tǒng)計(jì)即可。這里選擇使用Jupyter Notebook作為實(shí)驗(yàn)平臺(tái),并對(duì)每次試驗(yàn)的結(jié)果以餅圖的方式繪制出來(lái)并實(shí)時(shí)刷新,如此便可以動(dòng)態(tài)的演示頻率的變化及其穩(wěn)定過(guò)程,比單純的直方圖或表格形式列出最終的統(tǒng)計(jì)結(jié)果更為直觀且易于理解。
例1:模擬拋擲一枚均勻的硬幣,0表示正面,1表示反面,試驗(yàn)動(dòng)畫(huà)效果如下:
圖1 拋硬幣動(dòng)畫(huà)效果截圖
可以看出,當(dāng)試驗(yàn)次數(shù)較少時(shí),出現(xiàn)正面的頻率略高于0.5,而隨著試驗(yàn)次數(shù)的增加,該頻率將逐漸穩(wěn)定到0.5。
例2:從學(xué)校乘汽車(chē)到火車(chē)站的途中有三個(gè)紅綠燈口,假設(shè)在各個(gè)路口遇到紅燈的事件是相互獨(dú)立的,且概率都是0.25。設(shè)X為途中遇到紅燈的次數(shù),求X的分布律。
根據(jù)題設(shè)容易看出隨機(jī)變量X~B(3,0.25),因此隨機(jī)變量X的分布律如下:
表1 隨機(jī)變量X的分布律表
通過(guò)實(shí)現(xiàn)的生成器函數(shù)B,試驗(yàn)動(dòng)畫(huà)效果如下:
圖2 二項(xiàng)分布動(dòng)畫(huà)效果截圖
同樣可以看出,當(dāng)試驗(yàn)次數(shù)足夠多時(shí),隨機(jī)變量出現(xiàn)的頻率分布將逐漸穩(wěn)定到其概率分布。
例3:某籃球運(yùn)動(dòng)員一次投籃命中率為0.61,記X為運(yùn)動(dòng)員首次投中時(shí)累計(jì)已投籃的次數(shù),求X的概率分布。
根據(jù)題設(shè)容易看出隨機(jī)變量X~Geo(0.61),因此隨機(jī)變量X的分布律如下:
表2 隨機(jī)變量X的分布律表
通過(guò)實(shí)現(xiàn)的生成器函數(shù)Geo,試驗(yàn)動(dòng)畫(huà)效果如下:
圖3 幾何分布動(dòng)畫(huà)效果截圖
雖然幾何分布是一個(gè)無(wú)窮分布,但是隨著k的增大,概率是趨于0的,在試驗(yàn)中體現(xiàn)為隨著試驗(yàn)次數(shù)的增加,隨機(jī)變量取值的頻率與其概率趨于相等,同時(shí)取值概率特別小的值偏向于不出現(xiàn)。特別需要指出的是,根據(jù)幾何分布可知是收斂的,并且等于2.32%,同時(shí)通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)X>4的這些取值的頻率近似等于概率值,從而還體現(xiàn)了的收斂性。
以上是Python 在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中的實(shí)際案例。通過(guò)Python,可以使用直觀、樸素的方法來(lái)展示概率的分布,通過(guò)理論與實(shí)際相結(jié)合,真正達(dá)到提高學(xué)生的興趣與參與度、幫助學(xué)生更好地理解和記憶知識(shí)點(diǎn)、培養(yǎng)學(xué)生的實(shí)踐能力、增強(qiáng)學(xué)生的綜合能力以及提高教學(xué)效果和學(xué)生的學(xué)習(xí)成績(jī)的目的。
雖然Python 在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中具有非常廣泛的應(yīng)用前景,但是在當(dāng)前的教學(xué)中還存在一些問(wèn)題。
概率論與數(shù)理統(tǒng)計(jì)教材中對(duì)Python 的應(yīng)用往往只是一些簡(jiǎn)單的代碼示例,缺少實(shí)用性,而且缺乏對(duì)Python在概率論與數(shù)理統(tǒng)計(jì)中實(shí)際應(yīng)用的深入探討。另外,課程設(shè)計(jì)中也往往缺少對(duì)Python 的應(yīng)用,導(dǎo)致學(xué)生無(wú)法真正地掌握Python 在概率論與數(shù)理統(tǒng)計(jì)中的應(yīng)用方法。
在當(dāng)前的概率論與數(shù)理統(tǒng)計(jì)教學(xué)中,學(xué)生往往只是聽(tīng)課和做題,缺少實(shí)踐機(jī)會(huì)。學(xué)生無(wú)法真正地理解Python 在概率論與數(shù)理統(tǒng)計(jì)中的應(yīng)用,也無(wú)法掌握Python的實(shí)際使用方法。
針對(duì)當(dāng)前概率論與數(shù)理統(tǒng)計(jì)教學(xué)中存在的問(wèn)題,可以采取以下教學(xué)改革措施。
在概率論與數(shù)理統(tǒng)計(jì)教材和課程設(shè)計(jì)中加入Python 的應(yīng)用案例,注重實(shí)用性和深度,讓學(xué)生能夠真正地掌握Python在概率論與數(shù)理統(tǒng)計(jì)中的應(yīng)用方法。
在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中加入實(shí)踐環(huán)節(jié),讓學(xué)生能夠親自實(shí)踐Python 在概率論與數(shù)理統(tǒng)計(jì)中的應(yīng)用,加深對(duì)Python 的理解和掌握程度。可以采取實(shí)驗(yàn)、項(xiàng)目等方式進(jìn)行實(shí)踐,讓學(xué)生能夠更加深入地了解Python在概率論與數(shù)理統(tǒng)計(jì)中的應(yīng)用。
在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中,推廣學(xué)生使用Python進(jìn)行數(shù)據(jù)處理、可視化、統(tǒng)計(jì)分析等方面,讓學(xué)生能夠更好地掌握Python 的實(shí)際使用方法??梢蚤_(kāi)展Python 編程比賽、課程設(shè)計(jì)等活動(dòng),鼓勵(lì)學(xué)生積極地使用Python進(jìn)行概率論與數(shù)理統(tǒng)計(jì)的應(yīng)用。
總之,Python 在概率論與數(shù)理統(tǒng)計(jì)教學(xué)中具有非常廣泛的應(yīng)用前景,可以幫助學(xué)生更好地理解和掌握概率論與數(shù)理統(tǒng)計(jì)的知識(shí)。在教育領(lǐng)域中,Python的應(yīng)用將會(huì)越來(lái)越廣泛,需要不斷地進(jìn)行教學(xué)改革,讓學(xué)生能夠更好地掌握Python的應(yīng)用方法,從而更好地應(yīng)對(duì)未來(lái)的挑戰(zhàn)。
Python 作為一種新型的教學(xué)工具,可以為概率論與數(shù)理統(tǒng)計(jì)教學(xué)帶來(lái)更多的機(jī)會(huì)和挑戰(zhàn)。通過(guò)教學(xué)改革的措施,可以更好地應(yīng)用Python進(jìn)行概率論與數(shù)理統(tǒng)計(jì)的教學(xué)工作,提高學(xué)生的學(xué)習(xí)效果和應(yīng)用能力,為培養(yǎng)高素質(zhì)的人才奠定堅(jiān)實(shí)的基礎(chǔ)。
同時(shí),Python 的應(yīng)用也需要不斷地改進(jìn)和完善,開(kāi)發(fā)更加適合概率論與數(shù)理統(tǒng)計(jì)教學(xué)的工具和插件,提高其在教學(xué)中的應(yīng)用效果。教師也需要不斷地提高自己的計(jì)算機(jī)技術(shù)和教學(xué)能力,更好地應(yīng)用Python進(jìn)行概率論與數(shù)理統(tǒng)計(jì)的教學(xué)工作。
最后,Python 作為一種新型的教學(xué)工具,具有廣闊的應(yīng)用前景和深遠(yuǎn)的影響力。在未來(lái)的概率論與數(shù)理統(tǒng)計(jì)教學(xué)中,Python 將逐漸成為教學(xué)的主流工具,為培養(yǎng)高素質(zhì)的人才做出更大的貢獻(xiàn)。此外,隨著信息技術(shù)的不斷發(fā)展和應(yīng)用,概率論與數(shù)理統(tǒng)計(jì)教學(xué)也將面臨新的挑戰(zhàn)和機(jī)遇。例如,人工智能、大數(shù)據(jù)、云計(jì)算等新興技術(shù)的快速發(fā)展,為概率論與數(shù)理統(tǒng)計(jì)的教學(xué)提供了更多的應(yīng)用場(chǎng)景和實(shí)踐機(jī)會(huì)。因此,教師需要不斷地更新自己的教學(xué)理念和方法,積極探索新的教學(xué)模式和教學(xué)工具,為學(xué)生成長(zhǎng)和發(fā)展提供更好的教育環(huán)境和資源。只有這樣,才能更好地應(yīng)對(duì)未來(lái)的教育挑戰(zhàn),為學(xué)生的成長(zhǎng)和發(fā)展提供更好的支持和保障。