Python的優(yōu)勢(shì)與方便讓科學(xué)家們都偏愛(ài)它
推薦 + 挑錯(cuò) + 收藏(0) + 用戶(hù)評(píng)論(0)
學(xué)生時(shí)代我就使用Python,我曾經(jīng)問(wèn)過(guò)我的一個(gè)要好的同學(xué)“你聽(tīng)說(shuō)過(guò)Python么”(你知道那個(gè)時(shí)候我問(wèn)這句話的心情可能跟很多熱心傳教的人問(wèn)“你聽(tīng)說(shuō)過(guò)上帝么?”是一樣的),得到的回答當(dāng)然是否定的。我還解釋說(shuō)Python是一門(mén)編程語(yǔ)言在世界流行編程語(yǔ)言的前十名中排第九,我那個(gè)學(xué)Java的同學(xué)當(dāng)然并不關(guān)心這個(gè)榜單,因?yàn)樗闹鞠蚴侨グ⒗锕ぷ鳎⒗镏饕褂肑ava。
這就是很多人對(duì)Python最初的印象——一個(gè)名不轉(zhuǎn)經(jīng)傳的小眾編程語(yǔ)言?,F(xiàn)如今只要提到大數(shù)據(jù),數(shù)據(jù)科學(xué)就不得不提到Python,甚至名噪一時(shí)的R語(yǔ)言也甘拜下風(fēng),截至本文寫(xiě)作時(shí)根據(jù)TIOBE榜單的顯示(https://www.tiobe.com/tiobe-index/),Python市場(chǎng)占有率為4.333%僅次于Java以及C和C++位列這個(gè)榜單的第四(“世界上最好的編程語(yǔ)言”——PHP位列第八,而R語(yǔ)言?xún)H排十四名)。那么是什么原因讓這么多人選擇了Python,如果說(shuō)后來(lái)者僅僅是因?yàn)楦L(fēng),那么早起使用者又是什么原因選擇Python呢?這就要從Python最擅長(zhǎng)的領(lǐng)域,也是當(dāng)下大熱的話題——“大數(shù)據(jù)”說(shuō)起。
大數(shù)據(jù)技術(shù)說(shuō)來(lái)并不神秘,本質(zhì)上是一種統(tǒng)計(jì)學(xué)的工程應(yīng)用,其中很多的算法可能早在計(jì)算機(jī)發(fā)明之后就已經(jīng)存在,最早由大學(xué)教授、數(shù)學(xué)家、統(tǒng)計(jì)學(xué)家進(jìn)行研究和試驗(yàn)。就我在實(shí)驗(yàn)室讀研的經(jīng)歷來(lái)說(shuō),其實(shí)這些人在大多數(shù)情況之下都不是一個(gè)合格的程序員,當(dāng)然他們也沒(méi)有必要成為一個(gè)程序員罷了。但是他們確實(shí)是最早使用計(jì)算機(jī),最早利用計(jì)算機(jī)進(jìn)行科學(xué)研究的人,在過(guò)去一種統(tǒng)治性的語(yǔ)言在學(xué)術(shù)界橫行,那就是Matlab。這種語(yǔ)言有一個(gè)非常簡(jiǎn)單的語(yǔ)法,我敢說(shuō)任何人,沒(méi)有一點(diǎn)編程經(jīng)驗(yàn)的人,只要一個(gè)下午就能學(xué)會(huì)如何使用Matlab將論文中的數(shù)學(xué)公式轉(zhuǎn)化成可以運(yùn)行的代碼。那時(shí)候Matlab是一個(gè)對(duì)于公式優(yōu)化的非常好的語(yǔ)言,易用、易學(xué)。不過(guò)缺點(diǎn)也很明顯,就是一個(gè)字——貴。說(shuō)起來(lái)可能難以啟齒,做學(xué)問(wèn)的人其實(shí)很窮的,窮則思變。所以在上個(gè)世界90年代中期Python作為一門(mén)發(fā)明還沒(méi)多久的語(yǔ)言,由于其語(yǔ)法簡(jiǎn)單酷似Matlab,并且開(kāi)源,有一幫人率先嘗試為期開(kāi)發(fā)數(shù)值運(yùn)算模塊,作為一個(gè)Matlab的替代品,而這個(gè)模塊就像我們做數(shù)據(jù)科學(xué)最常用的模塊之一——NumPy。幾年之后,一個(gè)在Python上實(shí)現(xiàn)的圖形庫(kù)也公布了,也就是我們現(xiàn)在常用的matplotlib。所以的關(guān)于科學(xué)計(jì)算的庫(kù)被打包成了SciPy供人們使用。雖然那時(shí)的Python還不能完全替代Matlab(因?yàn)镸atlab還有一個(gè)界面友好的IDE,以及關(guān)于電路模擬方面的功能),但是就單純的科學(xué)計(jì)算已經(jīng)能夠媲美Matlab了,很多人也僅使用這些功能,漸漸地Python在科學(xué)界成為了一個(gè)免費(fèi)的選擇。
在奠定了Python在科學(xué)界的地位之后,由于后期工業(yè)界對(duì)大數(shù)據(jù)的需求增加,Python這門(mén)語(yǔ)言逐漸被那些離開(kāi)學(xué)界進(jìn)入工業(yè)界的人傳播到了真正的公司中。隨著開(kāi)發(fā)人員的增加,Python也馬不停蹄的從其他語(yǔ)言中吸收有點(diǎn)。比如從R語(yǔ)言中吸收了DataFrame思想,而被廣泛使用的pandas庫(kù),以及scikiy-learn的機(jī)器學(xué)習(xí)庫(kù)。和從Mathematica中吸收了notebook的特點(diǎn)而開(kāi)發(fā)的IPython等。無(wú)數(shù)的人為Python這個(gè)社區(qū)添磚加瓦,使得Python的進(jìn)步產(chǎn)生了一個(gè)正向循環(huán)。
現(xiàn)如今如果說(shuō)數(shù)據(jù)科學(xué)家為什么選擇Python,原因不外乎人如下幾條:
好學(xué)。是的科學(xué)家也是人,也喜歡簡(jiǎn)單的東西;
社區(qū)龐大。你總會(huì)遇到問(wèn)題,這個(gè)時(shí)候你總是能找到人幫忙;
豐富的類(lèi)庫(kù)。在Python的世界里,統(tǒng)計(jì)也好,機(jī)器學(xué)習(xí)也好,有很多“現(xiàn)成”的工具供你使用;
交互式解釋器有利于調(diào)試。Python程序不需要編譯,更方便;
隨著Python的熱門(mén),學(xué)習(xí)的門(mén)檻也在降低。在我學(xué)習(xí)Python的時(shí)候,在網(wǎng)上能找到的學(xué)習(xí)資料大抵是“通過(guò)爬蟲(chóng)學(xué)習(xí)Python”之類(lèi)的內(nèi)容。但是越來(lái)越多的作者嘗試從其他的領(lǐng)域向人們介紹Python,如果讀者喜歡,直接從數(shù)據(jù)科學(xué)入門(mén)Python也未嘗不可。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
Python的優(yōu)勢(shì)與方便讓科學(xué)家們都偏愛(ài)它下載
相關(guān)電子資料下載
- 如何使用Rust創(chuàng)建一個(gè)基于ChatGPT的RAG助手 43
- Rust語(yǔ)言為什么這么卷? 21
- HPC與AI:完美融合 302
- 全國(guó)產(chǎn)EtherCAT運(yùn)動(dòng)控制邊緣控制器(五):IO配置與回零運(yùn)動(dòng)的Python+Qt開(kāi)發(fā) 109
- 開(kāi)源LLEMMA發(fā)布:超越未公開(kāi)的頂尖模型,可直接應(yīng)用于工具和定理證明 84
- SymPy:四行代碼秒解微積分 84
- Python 中的5種隱藏技巧 105
- Ciphey 的實(shí)戰(zhàn)使用教程 83
- 怎么用Python構(gòu)建一個(gè)自動(dòng)發(fā)送郵件的腳本 86
- 如何通過(guò)阿里云日志服務(wù)搭建一套通過(guò)Python上傳日志的監(jiān)控服務(wù) 104