經常有學員問我們,在數據科學領域里,到底是該選Python呢,還是選R更好?誠然,對于數據科學家來說,R和Python都很重要。但是對于一個新人數據科學家來說,又該如何取舍呢?同時學習Python和R也有些不切實際。作者TomWaterman作為過來人,他是先學了R,后來才學的Python,他給我們列出了為什么Python比R更適合數據科學領域的四大理由。InfoQ中文站翻譯并分享給大家。
我認為,在數據科學領域,Python比R更合適的理由主要有四個。
新人數據科學家都面臨著一個問題,而這個問題非常重要:我是應該學習Python呢,還是學習R?
問得好!這個問題真的非常重要。因為,“男怕入錯行,女怕嫁錯郎”,要知道,學習第一門編程語言是需要耗費數百個小時的。試圖都學這兩門編程語言是不切實際的,特別是當你剛剛開始職業生涯的時候。
那么,你應該做出怎樣的選擇呢?
根據我的經驗,如果你選擇了Python,我相信,你的職業生涯將會因此受益良多。
在我看來,對數據科學這一職業來說,Python是更好的選擇,尤其是如果你剛剛起步的話。
我將給出四個理由,來說明為什么我認為Python對你職業來說是更好的選擇,但我也要澄清一點:我并不認為R是一個糟糕的選擇。
選擇R并不會對你的工作機會產生什么負面影響,而是要取決于你的團隊,你甚至有可能會被要求學習R。事實上,Facebook將R作為內部調查工具的分析組件,而我們所有的數據科學基礎設施都支持這門語言。
也就是說,我相信,如果你學習Python的話,你將會更快地成為一名實踐數據科學家,而且還能夠更好地在統計建模之外的重要領域為你的團隊做出貢獻。
因此,學習Python將會使你能夠為公司帶來更大的影響力,而你的職業生涯也將因此碩果累累。
理由一:無論如何,你可能得學習Python
大多數公司要求他們的數據科學家所做的并不僅僅是預測建模(即機器學習)。至少,你可能需要維護為模型提供數據的數據管道,而這些數據管道很可能就是用Python構建的。
目前,管道的行業標準是基于Python的Airflow,而在Facebook上,我們使用的內部Python工具基本上也是相同的。
事實上,據我估計,在Facebook,我們的數據科學家100%都會在每周使用Python,而積極使用R的人可能只有10%左右。
因此,對你來說,如果選擇Python的話,可能會更有效率:雖然你一旦找到工作就可以避開R,但不太可能會繞開Python。
理由二:Python更容易學習
要知道,成為可雇傭的人所需的時間非常重要,尤其是如果你是在大學以外的地方自學的話。
Python以易學而聞名。在學過Python和R之后(雖然我對Python方面更深入),我認為,Python的聲譽是當之無愧的。
當你開始使用統計建模之外的語言特性時,Python易學所帶來的好處尤為明顯。這些特性包括將項目打包用于分發、開發命令行界面、使用像SQLAlchemy這樣的對象關系映射(Object-relationalmapping,ORM)為數據結構建模等等。
若掌握Python,將使你更容易精通這些特性,你的職業生涯也將因此受益。
理由三:Python的社區更龐大
Python是世界上最流行的編程語言之一,在Stackoverflow、Kaggle甚至Mediun等網站都有龐大的社區。
因此,當你不可避免地遇到連自己也無法解決的問題時,你更有可能找到那些在你之前遇到過這個問題、尋求過幫助并得到解決方案的人。
這意味著你將花費更少的時間來調試與系統的兼容性問題,而將更多的時間用于交付可為公司帶來影響的代碼。
理由四:使用Python部署模型更容易
最后,在職業生涯中,你可能會達到這樣的一個階段:你希望能夠將模型實時提供給任何一個最終用戶。要解決這個問題,你需要構建一個基于REST的Web應用程序,使用Python的話,這件事就會變得很容易。
實際上,Python擁有一些世界上最流行的Web應用程序框架,即Django和Flask。你公司的內部部署工具更有可能就支持這些框架,而且相對來說不太可能會支持R。
這些框架的流行也意味著它們得到了平臺即服務提供商(如Heroku、AmazonLightsail等)的良好支持。有了這些框架,你將能夠在線發布你的個人項目,而所需的工作量僅相當于在R中部署相同項目所需工作量的一小部分。
最重要的是,如果你足夠幸運,你的公司在自己的產品中已經使用了Python框架,那么學習Python就意味著你將有足夠的危機感,連接你自己的應用內跟蹤。若能夠自主為你的模型捕獲更多的特性,將會對你所能夠帶來的影響產生顯著的效果。
當然,所有的決策都是需要權衡取舍的,選擇學習Python而不是R也沒有什么不同。盡管我個人認為Python對數據科學職業來說是更好的選擇,但Python的缺點也同樣值得考慮。
對我來說,Python最大的缺點就是沒有與RStudio相當的工具。Python最有可比性的是JupyterNotebook,但我個人覺得RStuduo更好一些,因為它具有數據探索的功能。
作者注:在寫完本文后,MarceloGarcia指出可以使用免費的Spyder包作為RStudio的Python替代方案。但作者還沒有機會嘗試Spyder,但是看起來很棒!
R在學術界也非常流行,因此,R中軟件包的文檔更有可能是直接引用學術研究。這些文檔對于從事研究“前沿”工作的數據科學家來說非常有用。
但我并不認為RStudio的缺乏,就能足以否定Python的相對優勢。而且,在數據科學學術界從業者也少得多,這使得R的研究相關優勢對大多數數據科學家來說不那么重要了。
因此,盡管R有很多優點,但我相信如果你選擇學習Python,你的職業生涯將會受益匪淺。
最后,我認為值得一提的是,我并不認為學習R就是個糟糕的選擇,只不過Python更可能是你職業生涯中的一個更好的選擇而已。要根據你的具體情況,學習R對你來說也有可能更有意義。
不管你選擇學習哪種語言,你都不應該覺得你永遠不能改變主意。要知道,所有的編程語言的相似之處可要遠遠多于不同之處:學習第二門編程語言要比第一門編程語言容易得多。
實際上,我恰恰選擇的就是先學習R的!因此,就算我現在建議將Python作為你職業生涯的更好選擇,但我也很難對R不認可。
以上內容為大家介紹了數據科學領域Python比R語言更好,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/