R 和 Python用于統(tǒng)計學分析,哪個更好?
知乎有人提問,R 和 Python (numpy scipy pandas) 用于統(tǒng)計學分析,哪個更好?
從專業(yè)角度來看,「R在統(tǒng)計分析領域肯定是強于Python的?!?/p>
畢竟R這門語言本身就是為統(tǒng)計而生的,而且是統(tǒng)計學專家在維護R社區(qū),沉淀了數理統(tǒng)計領域眾多權威算法、函數、工具。
同時R的可視化功能也非常強大,很多頂級期刊論文也都用R做分析工具。
R不光比Python在統(tǒng)計上更強大,甚至和SAS、SPSS這些商業(yè)軟件對比也不落下風,而且更靈活。
所以如果你的工作涉及重要的統(tǒng)計工作,建議用R。stackoverflow上有很多R的專業(yè)回答,但R在中文領域資料很少,要學好英文。
R的官方文檔:https://cran.r-project.org/doc/manuals/r-release/R-intro.html
R包學習:https://cran.r-project.org/web/packages/available_packages_by_name.html
R入門書籍:《R語言實戰(zhàn)》、《R語言編程藝術》
但R有兩個缺點,首先語法比較繞,學習路徑很陡峭;
再者應用領域集中在數理統(tǒng)計、可視化、機器學習上,拓展性稍弱。
而Python完美了解決了這兩個問題,對初學者極其友好,網上有無數的Python資源。
并且Python出了統(tǒng)計分析,還能做各種各樣的事,web、爬蟲、GUI、自動化、AI等等,幾乎無所不能。
對于統(tǒng)計分析領域,Python目前也有很多解決方案,雖然不及R專業(yè),但基本上能滿足95%以上的需求。比如說:
Scipy-科學計算庫,包含的功能有最優(yōu)化、線性代數、積分、插值、擬合、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微積分求解等其他科學與過程中常用的計算。
Numpy-數值計算庫,提供了強大的數組計算功能,可用來存儲和處理大型矩陣,比Python自身的嵌套列表結構要高效的多,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。
StatsModels-統(tǒng)計建模庫,提供了包含統(tǒng)計模型、統(tǒng)計測試和統(tǒng)計數據挖掘的各種函數和模塊。
Pandas-數據分析庫,基于NumPy的一種工具,為解決數據分析任務而生。納入大量庫和一些標準的數據模型,提供高效地操作大型數據集所需的工具及大量的能快速便捷處理數據的函數和方法。
Sympy-科學計算庫,類似matlab,用一套強大的符號計算體系完成諸如多項式求值、求極限、解方程、求積分、微分方程、級數展開、矩陣運算等等計算問題。
...
如果你的工作中只是偶爾會用到統(tǒng)計分析,還會兼顧其他數據場景,那么建議你用Python,可以囊括你所有的需求。
如果你的工作場景會涉及到大數據,那么可以考慮Scala作為補充。
下面是R、Python、Scala三種語言在數據分析領域最受歡迎的工具包,供參考: