為何還在浪費(fèi)時間?Python與R語言的數(shù)據(jù)科學(xué)之爭
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
對于數(shù)據(jù)科學(xué)初學(xué)者來說,實干才是硬道理。所以我們只需選擇其中一種語言,并重點完成一些項目,接著便可品嘗勝利的果實。這就是最快的學(xué)習(xí)方式。
筆者雖然很想直接推薦Python(筆者主要使用Python,不過也的確掌握一些R語言的工作知識),但還是想為初學(xué)者公正地評估一下這兩種語言的有效性。這主要是因為選擇哪種語言取決于你自己的具體情況。
你為什么想學(xué)習(xí)?
必須考慮的因素是:你想要學(xué)習(xí)的原因。例如,如果你是一個訓(xùn)練有素的生物學(xué)家,想學(xué)習(xí)一些編程技能以便更好地理解你的數(shù)據(jù)集,或者你熟悉其他科學(xué)編程語言,比如MATLAB,那么你應(yīng)該考慮在YouTube上看一些R語言的教程,因為它對你來說比Python更簡單、更直觀。
或者,如果你是精通C/C++和Java等語言的軟件工程師,并且準(zhǔn)備轉(zhuǎn)攻數(shù)據(jù)科學(xué),Python將是適合你的一種語言。與大多數(shù)其他流行的編程語言一樣,Python是一種面向?qū)ο缶幊?OOP)語言,它可能比R語言更直觀。
又或者,也許你最近一直在閱讀數(shù)據(jù)科學(xué)這一迷人領(lǐng)域的相關(guān)文獻(xiàn),并想涉足其中,在這種情況下,這兩種語言都是不錯的選擇。因此,比起學(xué)習(xí)的理由這一因素,選擇哪種語言將更多地取決于其他因素。
你是否有精通該語言的朋友或同事?
如果你正在學(xué)習(xí)一門新語言,那么獲得社區(qū)的支持將會是一個巨大的優(yōu)勢。從社區(qū)獲得幫助是程序員的一項非常重要的技能。
作為一名初學(xué)者,學(xué)習(xí)如何獲得幫助有些棘手,很少有網(wǎng)絡(luò)資源來教會人們?nèi)绾螐纳鐓^(qū)獲得幫助。具備敏銳的直覺,并且知道當(dāng)代碼出錯時應(yīng)該詢問些什么是非常重要的。
如果你認(rèn)識一個精通Python的人,或者你實驗室的另一個研究人員一直在研究R語言,那么你最好學(xué)習(xí)他們擅長的語言,因為這樣你就可以在遇到困難時隨時向他們求助。
你是只對統(tǒng)計和數(shù)據(jù)分析感興趣,還是想學(xué)習(xí)其他領(lǐng)域,如機(jī)器學(xué)習(xí)和人工智能?
在應(yīng)用層面上,Python和R語言的一個顯著區(qū)別在于前者用途更廣泛。Python是一種成熟的編程語言,這意味著你只用Python便可以收集、存儲、分析和可視化數(shù)據(jù),同時還可以創(chuàng)建機(jī)器學(xué)習(xí)工作管道并將其部署至生產(chǎn)或網(wǎng)站中。
另一方面,R語言則是只用于統(tǒng)計和數(shù)據(jù)分析,它的圖表要比Python的更美觀且個性化。R語言使用圖形語法(Grammar ofGraphics)的方式可視化其ggPlot2庫中的數(shù)據(jù),這提供了Python所缺乏的大量直觀的個性化設(shè)置。
或許這樣說有些籠統(tǒng),但如果你想成為一名數(shù)據(jù)分析師,R語言應(yīng)該是你的首選。如果你想成為一名數(shù)據(jù)科學(xué)家,Python則是更好的選擇。這便是泛化與專業(yè)化的兩難選擇。
圖源:unsplash
作為一個在過去十年間興起的領(lǐng)域,數(shù)據(jù)科學(xué)的進(jìn)化日新月異。但不變的是越來越多的數(shù)據(jù)管道每天都在被自動化。
具備數(shù)據(jù)工程、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)工程、云服務(wù)集成和模型部署等多種技能的員工,總是比那些只專注于數(shù)據(jù)科學(xué)工作流程這一個方面的員工更受歡迎。該領(lǐng)域的發(fā)展已經(jīng)在很大程度上實現(xiàn)自動化,只有編程技能出色的員工才能不被機(jī)器所取而代之。除非你極其擅長該領(lǐng)域,否則僅僅專注于構(gòu)建優(yōu)秀的機(jī)器學(xué)習(xí)模型在未來是行不通的。
目前的業(yè)內(nèi)形勢是:有太多初學(xué)者水平的求職者,能力雖然“較為”出色,而初工作經(jīng)驗則寥寥無幾。對于那些略微高級的工作崗位來說,則沒有足夠多的經(jīng)驗豐富或技術(shù)對口的工作者。為了能夠在工作中更上一層樓,你將需要去理解并實踐工作流的其它階段,為何不讓自己的成功概率最大化?
如果你依舊舉棋不定,筆者建議最好是現(xiàn)在就選擇Python并開始學(xué)習(xí)。在你掌握了與之相關(guān)的工作知識之后,還可以學(xué)習(xí)R語言的基礎(chǔ)知識。但如果你實在用不慣Python,那么接下來該做什么就無需筆者多費(fèi)口舌了。
作為初學(xué)者,你的首要任務(wù)應(yīng)該是了解數(shù)據(jù)科學(xué)的核心概念,并首先了解如何將這些概念應(yīng)用于實際場景。對于那些沒有編程或計算機(jī)科學(xué)背景知識的人來說,配置編程環(huán)境可能是件難事。然而,比起Python,配置環(huán)境并開始學(xué)習(xí)R語言的體驗可能會更加流暢友好。
有太多人只是沉溺于成為一名數(shù)據(jù)科學(xué)家的空想,而真正腳踏實地采取行動的人卻遠(yuǎn)遠(yuǎn)不夠。所以,是時候開始你的數(shù)據(jù)科學(xué)之旅了。