為什么Python在數(shù)據(jù)科學領域比R更受歡迎呢?
新入門的數(shù)據(jù)科學家都面臨一個非常重要的問題:我應該學習Python還是R?
這個問題非常重要,因為學習第一門編程語言需要花費很多時間。嘗試兩者兼得是不切實際的,尤其是在你剛開始職業(yè)生涯的時候。
所以你應該選哪一個呢?
根據(jù)我的經(jīng)驗,如果選擇Python,你的職業(yè)生涯會受益更多。
在我看來,Python,尤其是在剛剛起步的情況下,是從事數(shù)據(jù)科學的更好選擇。
我會分四點來解釋為什么要選擇Python,但同時我要聲明,這并不意味著R是一個糟糕的選擇。
選擇R不會對你的工作產(chǎn)生負面影響,如果你的團隊有要求,那你也必須去學習R。事實上,F(xiàn)acebook已經(jīng)使用R作為內部調查工具的分析組件,我們所有的數(shù)據(jù)科學基礎設施都支持這種語言。
也就是說,我認為如果先學習Python,作為一名實踐數(shù)據(jù)科學家,你將變得更有效率,并且能夠更好地在統(tǒng)計建模之外的重要領域為團隊做出貢獻。
因此,學習Python后,你能為公司帶來更大的影響力,而你的職業(yè)生涯也會受益更多。
理由1:你總要學習Python
大多數(shù)公司不僅僅要求他們的數(shù)據(jù)科學家學會預測建模(即機器學習)。至少,你可能需要維護為模型提供數(shù)據(jù)的數(shù)據(jù)管道,而這些數(shù)據(jù)管道可能是用Python構建的。
如今,管道的行業(yè)標準是基于Python的Airflow,,而在Facebook,我們使用的內部Python工具和其基本相同。
事實上,我估計Facebook的所有數(shù)據(jù)科學家每周都會使用Python,而只有大約10%的人會經(jīng)常使用R。
因此,選擇Python可能更有效:雖然一些工作可以避免使用R,但不太可能會避免使用Python。
理由2:Python更容易學習
在就業(yè)之前,你學習這些技能的時間非常重要,特別是在大學之外自學的話。
Python以易學而聞名。在同時學習了Python和R之后(盡管更深入地學習了Python),我認為Python有此名聲當之無愧。
當你開始使用統(tǒng)計建模以外的語言特性時,Python易于學習的優(yōu)點尤其明顯。這些特性包括打包項目以供分發(fā)、開發(fā)命令行接口、使用ORMs(如SQLAlchemy)建模數(shù)據(jù)結構等。
使用Python能讓你更輕松地學會并精通這些特性,你的職業(yè)生涯也會因此受益。
理由3:Python社區(qū)更大
來源:Pexels
Python是全球最流行的編程語言之一,在stack overflow、kaggle甚至medium等站點上都有一個龐大的社區(qū)。
因此,當遇到一個自己無法解決的問題時,你會更容易找到有經(jīng)驗的人尋求幫助,解決問題。
這意味著你無需在調試與系統(tǒng)的兼容性問題上花太多時間,這樣一來,你也有更多的時間交付公司所需的代碼。
理由4:Python更易于部署模型
最后,你可能會在職業(yè)生涯中達到這樣一個階段:你想實時將模型提供給任何一個終端用戶。要解決這個問題,需要構建一個基于REST的web應用程序,而使用Python來構建這個程序會容易很多。
事實上,Python擁有一些全球最流行的web應用框架,即Django和Flask。你公司的內部部署工具更可能支持這些框架,而相對不太可能支持R。
這些框架的流行還意味著它們得到了平臺即服務提供商(如Heroku、Amazon Lightsail等)的良好支持。你將能夠在線發(fā)布個人項目,這與在R中部署相同項目所需的花費相比,簡直是九牛一毛。
最重要的是,如果你足夠幸運,你的公司為自己的產(chǎn)品使用了Python框架,學習Python意味著連接你的應用內跟蹤變得十分危險。如果你能自主為模型捕獲更多的功能,個人影響力會發(fā)生巨大改變。
當然,所有的決定都有取舍,選擇學習Python而不是R也是如此。盡管我相信Python是數(shù)據(jù)科學職業(yè)的更好選擇,但也要考慮它帶來的不利因素。
對我來說,Python最大的缺點是沒有等同于Rstudio的工具。在Python中最具可比性的工具是Jupyter Notebook,但我個人認為Rstudio更好,因為它具有數(shù)據(jù)探索功能。
R在學術界也很受歡迎,因此R中包的文檔更有可能直接引用學術研究。這些文檔對于從事“尖端”研究的數(shù)據(jù)科學家來說非常有用。
但我不認為缺少和Rstudio等同的工具可以否定Python的相對優(yōu)勢。在數(shù)據(jù)科學學術界,職位也少得多,所以對大多數(shù)數(shù)據(jù)科學家來說,R的研究相關優(yōu)勢也不那么重要了。
因此,盡管R有很多優(yōu)點,但我相信如果你選擇學習Python,職業(yè)生涯將會受益匪淺。
最后值得一提的是,我并不認為學習R是一個糟糕的選擇,最重要的是,不論選擇哪種語言,你都不應該永遠止步于此。所有的編程語言之間,相似之處總是多于差異:學習第二語言也會比學習第一語言容易得多。
事實上,我選擇了先學習R!因此盡管我現(xiàn)在推薦Python作為職業(yè)生涯的更好選擇,我也很難對R作出不好的評價。