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