為什麼數據科學家偏愛Python?
學生時代我就使用Python,我曾經問過我的一個要好的同學「你聽說過Python么」(你知道那個時候我問這句話的心情可能跟很多熱心傳教的人問「你聽說過上帝么?」是一樣的),得到的回答當然是否定的。我還解釋說Python是一門編程語言在世界流行編程語言的前十名中排第九,我那個學Java的同學當然並不關心這個榜單,因為他的志向是去阿里工作,而阿里主要使用Java。
這就是很多人對Python最初的印象——一個名不轉經傳的小眾編程語言。現如今只要提到大數據,數據科學就不得不提到Python,甚至名噪一時的R語言也甘拜下風,截至本文寫作時根據TIOBE榜單的顯示(https://www.tiobe.com/tiobe-index/),Python市場佔有率為4.333%僅次於Java以及C和C++位列這個榜單的第四(「世界上最好的編程語言」——PHP位列第八,而R語言僅排十四名)。那麼是什麼原因讓這麼多人選擇了Python,如果說後來者僅僅是因為跟風,那麼早起使用者又是什麼原因選擇Python呢?這就要從Python最擅長的領域,也是當下大熱的話題——「大數據」說起。
大數據技術說來並不神秘,本質上是一種統計學的工程應用,其中很多的演算法可能早在計算機發明之後就已經存在,最早由大學教授、數學家、統計學家進行研究和試驗。就我在實驗室讀研的經歷來說,其實這些人在大多數情況之下都不是一個合格的程序員,當然他們也沒有必要成為一個程序員罷了。但是他們確實是最早使用計算機,最早利用計算機進行科學研究的人,在過去一種統治性的語言在學術界橫行,那就是Matlab。這種語言有一個非常簡單的語法,我敢說任何人,沒有一點編程經驗的人,只要一個下午就能學會如何使用Matlab將論文中的數學公式轉化成可以運行的代碼。那時候Matlab是一個對於公式優化的非常好的語言,易用、易學。不過缺點也很明顯,就是一個字——貴。說起來可能難以啟齒,做學問的人其實很窮的,窮則思變。所以在上個世界90年代中期Python作為一門發明還沒多久的語言,由於其語法簡單酷似Matlab,並且開源,有一幫人率先嘗試為期開發數值運算模塊,作為一個Matlab的替代品,而這個模塊就像我們做數據科學最常用的模塊之一——NumPy。幾年之後,一個在Python上實現的圖形庫也公布了,也就是我們現在常用的matplotlib。所以的關於科學計算的庫被打包成了SciPy供人們使用。雖然那時的Python還不能完全替代Matlab(因為Matlab還有一個界面友好的IDE,以及關於電路模擬方面的功能),但是就單純的科學計算已經能夠媲美Matlab了,很多人也僅使用這些功能,漸漸地Python在科學界成為了一個免費的選擇。
在奠定了Python在科學界的地位之後,由於後期工業界對大數據的需求增加,Python這門語言逐漸被那些離開學界進入工業界的人傳播到了真正的公司中。隨著開發人員的增加,Python也馬不停蹄的從其他語言中吸收有點。比如從R語言中吸收了DataFrame思想,而被廣泛使用的pandas庫,以及scikiy-learn的機器學習庫。和從Mathematica中吸收了notebook的特點而開發的IPython等。無數的人為Python這個社區添磚加瓦,使得Python的進步產生了一個正向循環。
現如今如果說數據科學家為什麼選擇Python,原因不外乎人如下幾條:
好學。是的科學家也是人,也喜歡簡單的東西;
社區龐大。你總會遇到問題,這個時候你總是能找到人幫忙;
豐富的類庫。在Python的世界裡,統計也好,機器學習也好,有很多「現成」的工具供你使用;
互動式解釋器有利於調試。Python程序不需要編譯,更方便;
隨著Python的熱門,學習的門檻也在降低。在我學習Python的時候,在網上能找到的學習資料大抵是「通過爬蟲學習Python」之類的內容。但是越來越多的作者嘗試從其他的領域向人們介紹Python,如果讀者喜歡,直接從數據科學入門Python也未嘗不可。
點擊展開全文
※Python強勢破解WiFi密碼!
※完全理解 Python 迭代對象、迭代器、生成器
※美女程序員帶你進入Python世界
※用 Python 進行貝葉斯模型建模 (0)
※寫給Java開發者的Python入門
TAG:Python |
※利用Python做絕地科學家
※給數據科學家的 Python 3 指導;簡單 chatbot 代碼實現
※科學家的Green Salsa食譜
※褶子科學家Issey Miyake 的寫意梳理
※谷歌大腦科學家Hugo LaRochelle:不要為AI劃定邊界
※Facebook首席AI科學家Yann LeCun:距離「真正的」AI我們還缺什麼?
※科學家Jeff Lieberman:我是誰?
※陳列平:follow my heart,我要做那前面5%的科學家!
※NumPy 將停止支持 Python 2,這裡有一份給數據科學家的 Python 3 使用指導
※Cell Reports:科學家揭示「學習」的機理!
※數據科學家效率提升必備技巧之Jupyter Notebook篇
※我國科學家在Nature Review Chemistry上發表單原子催化述評
※亞馬遜前首席科學家 Andreas Weigend:展望大數據與未來
※Super Science Friends-科學家也能有超能力
※Nat Biotechnol:我國科學家利用DNA納米機器人在體內高效靶向癌症
※亞馬遜AWS首席科學家Animashree Anandkumar:機器學習將引領未來革命
※誰說科學家不能時尚?C2H4全新Future-Ready教你工作玩潮!
※Acta Neuropathol Commun:科學家們開發出診斷神經退行性疾病的新方法
※World eBook Library:從霍金說起,科學家們在「探索宇宙」的奧秘中都做了哪些研究?
※Immunity:HIV為何無法治癒?科學家找到關鍵機制!