您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

Python的優(yōu)勢與方便讓科學(xué)家們都偏愛它

大小:0.3 MB 人氣: 2017-09-28 需要積分:1

  學(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%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?