是否適合個人偏好
是否滿足工作需求
數(shù)據(jù)科學的戰(zhàn)爭:R vs Python:http://blog.csdn.net/Er8cJiang/article/details/51065018
R的介紹
Ross Ihaka 和 Robert Gentleman 1995年創(chuàng)建開源語言R作為S編程語言的實現(xiàn).其目的是開發(fā)一個提供更好更人性化數(shù)學據(jù)分析,統(tǒng)計和圖形模型的語言.最初,R主要是在學術和研究中使用,最近其余也開始使用R.這使得R成為全球發(fā)展最快的統(tǒng)計語言.
R的主要優(yōu)勢的其強大的社區(qū),通過郵件列表,用戶貢獻文檔和一個非程硪辏活躍的Stack Overflow小組提供支持.還有CRAN,一個用戶可以輕松貢獻R包的巨大資源庫.這些軟件包是一個R函數(shù)和數(shù)據(jù)的集合,可以馬上訪問最新技術和功能,不需要從頭開始開發(fā).
最后,如果你是一個有經(jīng)驗的程序員,學習R可能并不難.然而作為一個初學者,你可能會感覺到非常糾結(jié).幸運的是,有許多你可以咨詢的當下的學習資源.
Python的介紹
Python是由Guido van Rossum 1991年創(chuàng)建,強調(diào)效率和代碼的可讀性省容。希望深入的數(shù)據(jù)分析或應用統(tǒng)計技術的程序員一些Python用于統(tǒng)計的主要用戶。
你越接近在工程環(huán)境中工作,越有可能更喜歡Python卸留。它是一種靈活的語言趟章,并讓其專注于可讀性和簡單性,它的學習曲線是比較低的玫芦。
與R類似浆熔,Python同樣有包。PyPI是Python包的索引桥帆,由用戶貢獻的庫組成医增。就像R慎皱,Python有一個偉大的社區(qū),但它有點分散叶骨,因為它是一個通用的語言茫多。然而,Python中數(shù)據(jù)科學正在迅速聲稱在Python世界中更占優(yōu)勢的地位:預期正在成長忽刽,更具創(chuàng)新性的科學數(shù)據(jù)的應用程序?qū)⒃谶@里看到自己的起源天揖。
R和Python:通用量
在網(wǎng)絡上,你可以找到許多比較R和Python使用和普及的數(shù)量跪帝。雖然這些數(shù)字往往告訴我們這兩種語言是在計算機科學的整個生態(tài)系統(tǒng)發(fā)展的很好今膊,這很難橫向?qū)Ρ取T斐蛇@種情況的主要原因是伞剑,你只會在數(shù)據(jù)科學環(huán)境發(fā)現(xiàn)R;而另一方面,Python作為一種通用語言被廣泛應用于許多領域斑唬,如網(wǎng)絡開發(fā)。這往往偏向有利于Python中的排名結(jié)果黎泣,而結(jié)果是有些負面影響赖钞。?
什么時候,如何使用R?
R主要用于當數(shù)據(jù)分析任務需要各個服務器獨立計算或分析。探索性的工作非常棒聘裁,對于幾乎任何類型的數(shù)據(jù)分析得心應手,因為大量的包和容易使用的測試雪营,經(jīng)常為你提供必要的工具,快速啟動和運行. R甚至可以是大數(shù)據(jù)解決方案的一部分衡便。
當開始使用R献起,一個良好的第一步驟是安裝神奇的 IDE RStudio。一旦做到這一點镣陕,我們建議您看看下面的流行的包:
dplyr谴餐,plyr和data.table輕松地操縱包,?
stringr操作字符串,
zoo處理定期和不定期的時間序列,
ggvis,lattice,和GGPLOT2可視化數(shù)據(jù),
caret 機器學習
什么時候,如何使用Python?
當你的數(shù)據(jù)分析任務需要整合Web應用程序,或者如果統(tǒng)計代碼需要納入生產(chǎn)數(shù)據(jù)庫時,可以使用Python呆抑。作為一個完全成熟的編程語言岂嗓,它是實現(xiàn)生產(chǎn)使用算法一個偉大的工具。
而過去Python包進行數(shù)據(jù)分析不成熟是一個問題鹊碍,多年來這已經(jīng)顯著改善厌殉。請確保安裝NumPy /SciPy的(科學計算)和pandas (數(shù)據(jù)處理),以使Python可用于數(shù)據(jù)分析侈咕。也看看matplotlib制作圖形和scikit-learn用于機器學習公罕。
不像R,Python有沒有明確的“最優(yōu)”IDE耀销。我們建議你使用Spyder楼眷,IPython Notebook 和Rodeo ,看看哪一個最適合您的需求。
R和Python:數(shù)據(jù)科學的數(shù)量
如果你看一下最近的民意調(diào)查罐柳,重點用于數(shù)據(jù)分析的編程語言掌腰,R往往是明顯的贏家。如果您特別注重Python和R數(shù)據(jù)分析領域张吉,會得到一個類似的模式辅斟。?
盡管上述數(shù)字,有越來越多的人從R轉(zhuǎn)向Python芦拿。此外士飒,有越來越多人同時使用二者。這也正符合我們推薦給學生蔗崎。
如果你打算開始數(shù)據(jù)科學的職業(yè)生涯酵幕,最好熟練兩種語言。招聘趨勢顯示這兩個技能的需求不斷增加缓苛,工資又遠高于平均水平芳撒。
R:優(yōu)點和缺點
Pro :一張圖片勝過比千言萬語
可視數(shù)據(jù)通常比單獨的原始數(shù)據(jù)更易于理解。 R和可視化是一個完美的搭配未桥。一些必看的可視化包是GGPLOT2笔刹,ggvis,googleVis和rCharts冬耿。
Pro:R生態(tài)系統(tǒng)
R有豐富的生態(tài)系統(tǒng),其中包括前沿的包和活躍的社區(qū)舌菜。包可CRAN,Bioconductor和Github上得到亦镶。您可以在Rdocumentation搜索所有的包日月。
Pro:數(shù)據(jù)科學中用得上R
R由統(tǒng)計學家為統(tǒng)計專家開發(fā)。他們可以通過R代碼和包傳達的思想和觀念缤骨,你不一定需要計算機科學的背景爱咬。此外,學術界外的人們越來越多的使用R绊起。
Pro/CON:R很慢
r的開發(fā)是為了讓統(tǒng)計人員的生活更輕松精拟,而不是你的電腦的使用壽命。雖然R可能運行緩慢是由于寫得不好的代碼虱歪,有多個包來提高的r性能:PQR蜂绎,renjin 和FastR,Riposte 等等实蔽。
CON:R有一個陡峭的學習曲線
R學習曲線很復雜荡碾,特別是如果你是來自統(tǒng)計分析的GUI。如果你不熟悉它,即便尋找包可能會非常耗時局装。
Python:優(yōu)點和缺點
Pro:IPython Notebook
IPython Notebook更容易處理Python和數(shù)據(jù)。您可以輕松地與同事共享notebooks ,無需他們安裝任何東西铐尚。這大大減少了組織代碼拨脉,輸出和注釋文件的開銷。這將讓您花更多的時間做實際工作宣增。
Pro:通用語言
Python是容易和直觀的通用語言玫膀。這給了它一個相對平坦的學習曲線,它可以增加你寫一個程序的速度爹脾√迹總之,你需要更少的時間寫代碼!
此外灵妨,Python測試框架是一個內(nèi)置的地要求的測試框架解阅,鼓勵良好的測試覆蓋率。這樣可以保證你的代碼是可重復使用的和可靠的泌霍。
Pro:一個多用途的語言
Python將不同背景的人聚集在一起货抄。作為一個通用的,容易理解的語言朱转,統(tǒng)計學家可以很容易地學會蟹地,你可以建立一個單一的工具集成您的工作流程的每一個部分。
Pro/ CON:可視化
選擇數(shù)據(jù)分析軟件時藤为,可視化是一個重要的標準怪与。雖然Python有一些不錯的可視化庫,如Seaborn缅疟,Bokeh 和Pygal琼梆,有太多可供選擇的方案。此外窿吩,相比于R茎杂,可視化通常是比較繁瑣,結(jié)果并不總是那么順眼纫雁。
CON:Python是挑戰(zhàn)者
Python是R的挑戰(zhàn)者.它不提供數(shù)百必不可少的R包的替代煌往。雖然它正在追趕,目前還不清楚這是否會讓人放棄了R轧邪?
誰是勝利者?
由你決定刽脖!作為一名數(shù)據(jù)科學家,選擇最符合需求的語言是你的工作忌愚。有些問題可以幫助你:
你想解決什么問題曲管?
學習語言的凈成本是什么?
在你的領域中常用的工具是什么硕糊?
其他可用的工具是什么和這些相關工具日常中是如何使用的院水?