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