R vs. Python 數(shù)據(jù)分析中誰與爭鋒?
當(dāng)我們想要選擇一種編程語言進(jìn)行數(shù)據(jù)分析時(shí),相信大多數(shù)人都會(huì)想到R和Python——但是從這兩個(gè)非常強(qiáng)大、靈活的數(shù)據(jù)分析語言中二選一是非常困難的。
我承認(rèn)我還沒能從這兩個(gè)數(shù)據(jù)科學(xué)家喜愛的語言中選出更好的那一個(gè)。因此,為了使事情變得有趣,本文將介紹一些關(guān)于這兩種語言的詳細(xì)信息,并將決策權(quán)留給讀者。值得一提的是,有多種途徑可以了解這兩種語言各自的優(yōu)缺點(diǎn)。然而在我看來,這兩種語言之間其實(shí)有很強(qiáng)的關(guān)聯(lián)。
Stack Overflow趨勢對(duì)比
上圖顯示了自從2008年(Stack Overflow 成立)以來,這兩種語言隨著時(shí)間的推移而發(fā)生的變化。
R和Python在數(shù)據(jù)科學(xué)領(lǐng)域展開激烈競爭,我們來看看他們各自的平臺(tái)份額,并將2016與2017年進(jìn)行比較:
接下來我們將從適用場景、數(shù)據(jù)處理能力、任務(wù)、安裝難度以及開放工具等方面詳細(xì)了解這兩種語言。
適用場景
R適用于數(shù)據(jù)分析任務(wù)需要獨(dú)立計(jì)算或單個(gè)服務(wù)器的應(yīng)用場景。Python作為一種粘合劑語言,在數(shù)據(jù)分析任務(wù)中需要與Web應(yīng)用程序集成或者當(dāng)一條統(tǒng)計(jì)代碼需要插入到生產(chǎn)數(shù)據(jù)庫中時(shí),使用Python更好。
任務(wù)
在進(jìn)行探索性統(tǒng)計(jì)分析時(shí),R勝出。它非常適合初學(xué)者,統(tǒng)計(jì)模型僅需幾行代碼即可實(shí)現(xiàn)。Python作為一個(gè)完整而強(qiáng)大的編程語言,是部署用于生產(chǎn)使用的算法的有力工具。
數(shù)據(jù)處理能力
有了大量針對(duì)專業(yè)程序員以及非專業(yè)程序員的軟件包和庫的支持,不管是執(zhí)行統(tǒng)計(jì)測試還是創(chuàng)建機(jī)器學(xué)習(xí)模型,R語言都得心應(yīng)手。
Python最初在數(shù)據(jù)分析方面不是特別擅長,但隨著NumPy、Pandas以及其他擴(kuò)展庫的推出,它已經(jīng)逐漸在數(shù)據(jù)分析領(lǐng)域獲得了廣泛的應(yīng)用。
開發(fā)環(huán)境
對(duì)于R語言,需要使用R Studio。對(duì)于Python,有很多Python IDE可供選擇,其中Spyder和IPython Notebook是最受歡迎的。
熱門軟件包和庫
下面羅列了R和Python推出的針對(duì)專業(yè)以及非專業(yè)程序員的最熱門的軟件包和庫。
R:針對(duì)專業(yè)程序員的熱門軟件包
用于數(shù)據(jù)操作的 dplyr、plyr和 data table
用于字符串操作的 stringr
定期和不定期時(shí)間序列 zoo
數(shù)據(jù)可視化工具 ggvis、lattice 和 ggplot2
用于機(jī)器學(xué)習(xí)的 caret
R:針對(duì)非專業(yè)程序員的熱門軟件包
Rattle
R Commander
Deducer
這些完整的GUI包可以實(shí)現(xiàn)強(qiáng)大的數(shù)據(jù)統(tǒng)計(jì)和建模功能。
Python:針對(duì)專業(yè)程序員的熱門庫
用于數(shù)據(jù)分析的 pandas
用于科學(xué)計(jì)算的 SciPy 和 NumPy
用于機(jī)器學(xué)習(xí)的 scikit-learn
圖表庫 matplotlib
statsmodels 用來探索數(shù)據(jù),估算統(tǒng)計(jì)模型,并執(zhí)行統(tǒng)計(jì)測試和單元測試
Python:針對(duì)非專業(yè)程序員的熱門庫
Orange Canvas 3.0是遵循GPL協(xié)議的開源軟件包。它使用一些常用的Python開源庫進(jìn)行科學(xué)計(jì)算,包括numpy、scipy和scikit-learn。
R 和 Python 詳細(xì)對(duì)比
正如本文開頭提到的,R和Python之間有很強(qiáng)的關(guān)聯(lián),并且這兩種語言日益普及。很難說哪一種更好,它們兩者的整合在數(shù)據(jù)科學(xué)界激起了許多積極和協(xié)作的波瀾。
總結(jié)
事實(shí)上,日常用戶和數(shù)據(jù)科學(xué)家可以同時(shí)利用這兩者語言,因?yàn)镽用戶可以在R中通過 rPython包來運(yùn)行R中的Python代碼,而Python用戶可以通過RPy2庫在Python環(huán)境中運(yùn)行R代碼。
原文:R vs. Python
作者:Sunil Kappal
譯者:安翔
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python運(yùn)用于數(shù)據(jù)分析的簡單教程
- 在MAC上搭建python數(shù)據(jù)分析開發(fā)環(huán)境
- R語言 vs Python對(duì)比:數(shù)據(jù)分析哪家強(qiáng)?
- 利用python實(shí)現(xiàn)數(shù)據(jù)分析
- Python數(shù)據(jù)分析之真實(shí)IP請(qǐng)求Pandas詳解
- Python數(shù)據(jù)分析之如何利用pandas查詢數(shù)據(jù)示例代碼
- Python數(shù)據(jù)分析中Groupby用法之通過字典或Series進(jìn)行分組的實(shí)例
- 對(duì)Python進(jìn)行數(shù)據(jù)分析_關(guān)于Package的安裝問題
- Python使用SQLite和Excel操作進(jìn)行數(shù)據(jù)分析
- python數(shù)據(jù)分析數(shù)據(jù)標(biāo)準(zhǔn)化及離散化詳解
相關(guān)文章
python實(shí)現(xiàn)多進(jìn)程代碼示例
Python中大部分情況下都需要使用多進(jìn)程,Python中提供了multiprocessing這個(gè)包實(shí)現(xiàn)多進(jìn)程。multiprocessing支持子進(jìn)程、進(jìn)程間的同步與通信,本文就詳細(xì)的介紹一下2018-10-10python3使用迭代生成器實(shí)現(xiàn)減少內(nèi)存占用
這篇文章主要介紹了python3使用迭代生成器實(shí)現(xiàn)減少內(nèi)存占用的相關(guān)資料,需要的朋友可以參考下2021-05-05Python實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07Python使用Tkinter?GUI實(shí)現(xiàn)輸入驗(yàn)證功能
這篇文章主要介紹了Python中使用Tkinter?GUI實(shí)現(xiàn)輸入驗(yàn)證,文中通過一個(gè)完整示例代碼給大家介紹Python?Tkinter?GUI輸入驗(yàn)證功能,需要的朋友可以參考下2022-04-04Python獲取和設(shè)置代理的動(dòng)態(tài)IP的方式
在網(wǎng)絡(luò)世界中,代理和動(dòng)態(tài)IP是非常常見的概念,尤其對(duì)于需要大規(guī)模訪問網(wǎng)站或者需要隱藏真實(shí)IP地址的應(yīng)用程序來說,更是必不可少的工具,本文將給大家介紹如何使用編程技術(shù)來實(shí)現(xiàn)動(dòng)態(tài)IP的設(shè)置和管理,需要的朋友可以參考下2024-05-05