Python在資料科學領域能否完全取代R?

時間 2021-12-25 18:48:16

1樓:llanglli

不會,各有所長,雖然近年 python copy 並進一步強化了 R 的一些長處,例如 ggplot,但除了發揚光大的 pandas,並沒有形成很好的生態,相反,R 在效能瓶頸、視覺化、動態文件等方面一騎絕塵。

貼一篇一年多前的舊文,基本論點仍然管用。

llanglli:在這個人人擁抱python的時代,R真的out了嗎?以上。

2樓:

取代R的,估計是R的下乙個版本,或者 julia,這種設計之初就不是專給程式設計師用的語言,因為學院裡大多搞資料科學的不是程式設計師,他們需要的是乙個上手容易,專業統計,作圖專業的程式語言。

而python對無計算機基礎的,還真說不上易用易記憶。

3樓:Mr xu

答案是不能。隔行如隔山,術業有專攻。R是統計學家寫的,具有數學或者統計上無與倫比的嚴謹性。

Python就統計分析領域而言是乙個好的資料清洗工具,但是建模,你真的相信Python上面的一些的package的嚴謹性麼?

最近嘗試用Python做一些統計建模,作為統計出身的我發現很多膈應的地方,於是隨便寫了乙個有嚴重Bug的多元線性回歸來做乙個實驗,結果還是有一些價值,算是拋磚引玉:

先上Python下面目前比較公認的STATSMODELS package 所做的結果(Python Version:3.7; STATSMODELS version:

0.9.0)

Note:如果這時候能夠發現結果有一些不對勁的情況,說明你統計學基礎還是有的。如果覺得一切結論很正常,請繼續往下看。

2. 上R的結果(R version: 3.5.1)

相信各位已經發現問題了,是吧,x和y的嚴重共線性,y是可以踢掉的,這種回歸嚴重違背了假設,像Python那樣出結果有意義麼,沒有意義的,起碼沒有統計學上的意義。

3. 如果不滿意,再看看統計學權威軟體SAS的結果 (SAS version: 9.4)

SAS 還是專業,直接F檢驗就不通過,Infity,很好很權威。

4. 最後處於好奇心,我們在看看可能是迄今為止最好的資料分析軟體Excel的結果:(Excel version office 365 2016)

結果就是Excel中文版不愧為東半球迄今為止最好的資料分析軟體。

好了,相信結果很明顯了。

Python是乙個好語言,對計算機程式設計的普及化以及大眾化起到了其他程式語言無法匹敵的推動作用。但是,在很多情況下,要相信專業性的力量,在合適的場合,選擇合適的工具。

After all, There is No Silver Bullet.

4樓:wei chris

我覺得是不可能的。

我給python同事介紹r,幾乎全都表示驚訝,功能強大,處理便捷,超乎意料。當然可能最初也沒有抱太大希望。給r同事介紹python,大部分表示設計的太複雜,不如函式式程式設計簡單。

python使用者作為程式設計師也比較好接受語言遷移這種事情,碼農會兩三門語言也很正常。但是r使用者很多是生信,統計和社科工作者,多學一門語言,儼然負擔不小。所以從使用群體上看,r使用者不可能消失。

我覺得很多障礙可能來自也物件導向程式設計的理念。

另外從具體功能上,r也有過python之處。視覺化,一站式web開發,文件編寫。但是python本身不是單為演算法而出現的,在程式開發上,有非常好的效率和生態。

另外r在載入演算法包上比較低效。通常完成乙個專案,載入的包很多,而且專案不同包也可能不同。但是python要好很多,經常numpy,pandas,re,sk-learn齊活了。

從這個角度講,python是很強的通用工具,而r是定製化的解決方案。

5樓:

恐怕不能,我最開始用R,後來用python,用了之後感覺太好用了,R這種軟體太醜了。後來隨著做一些專案,R還是有強於python的地方,主要就是在統計方面。

舉個最近遇到的例子,比如時間序列分析,要把乙個時間序列分解成三個序列,簡稱stl分解,就是Seasonal and Trend decomposition using Loess。

在R裡面很簡單,好像自帶的就有,而且是原始演算法,python裡沒有完全類似的,statsmodels裡有個decomposition,但是這個是原始演算法的簡化版的(估計),因為對異常資料不是很魯棒。從這個小例子裡感覺R在統計上確實比python要強一些。

python的優先,目前還是在於各種Learning的包比較好用吧。

6樓:

我覺得取決於你的角色。

讀書的時候覺得有R真好用,因為它能直接告訴我我關心的統計指標,每個變數是不是顯著及顯著水平、r方多大之類的,不用我自己去寫函式去算,方便。

現在工作了覺得python真好用,因為tensorflow的框架配合起python寫網路太好用了,sklearn裡面把我常用的演算法都打包好了,不用我重複再去造輪子,方便。

7樓:張逸萌

結論:實際操作中,Python 可以取代 R(至少不需要單獨開啟 R)。

利益相關:Python 中毒使用者。

相比 R,目前 Python 不足:R 上面的統計輪子確實比 Python 的多且靠譜。

在 R 被真正(可能麼?逃)取代之前,現階段最佳解決方案:在 Python 裡面呼叫 R。

Python + rpy2 應該可以基本解決 Python 上面統計包不夠用的問題。rpy2 用起來很方便,呼叫 R 的函式跟呼叫普通 Python 函式差不多。

另外,還可以用 rpy2 實現在 IPython kernel 的 Jupyter notebook 裡面寫 R 的功能。見這裡

8樓:孤雲獨去閒

統計模型確實是r的更好,但python社群的人也在開發更多的library。

以前我算邏輯回歸,線性回歸,給係數做test,看是不是顯著不等於零,都是用r。現在有時候會用statsmodels[1]。

舉個例子吧,在圖上根據拓撲結構做聚類(如圖1),英文叫community detection[2],演算法已經很多很成熟了,我都不用自己寫,python或者r上找個包用一下就好了。

但是如果我需要在二分圖上做聚類,那就不一定有現成的了。雖然我用python更舒服一些,但這時候如果有r社群那邊的大神已經把某個二分圖聚類的演算法寫的很好了,我肯定也要去用的。

所以作為使用者來說,最好兩個都會吧。

安利幾個statsmodel的例子[3]

9樓:駱阿羽

Python是處理矩陣運算不如R方便,視覺化效果不佳,不過語法靈活,入門簡單,處理文字比R好一些,有望成為計算機行業工作者與統計研究人員溝通的一大橋梁。

10樓:

為什麼感覺R好看一些,rstudio上顯示什麼都很方便,python上就老是乙個黑框……數學專業出身,實在接受不了沒有介面的程式設計……

分割分割分割~~~

最近又用了一段時間,介面倒是找到了,但是好多函式沒找到……比如hist,princomp……

11樓:鄭海洋

R用於後期資料展示是必不可少的,曾經試圖用python實現,但是失敗了。

另外乙個問題是流程控制的問題,R不能打包執行很是乙個問題。

不知道rpy可以打包麼?

12樓:

python和R又不是不相容的關係,沒有必要誰取代誰,覺得哪個方便、習慣就用哪個。如果覺得R的某些包比較靠譜那麼python裡可以用rpy2直接呼叫R。

以前numpy 和scipy還沒現在這麼普及的時候我還見過有人用shell呼叫Python生成R指令碼再執行的,倒是能比較容易地解決依賴問題。

Python在資料分析中怎麼用?

Python資料分析 Python日期和時間處理及操作時間序列分類 時間戳 timestamp 特定的時刻 固定週期 period 某月或某年 時間間隔 interval 由起始時間戳和結束時間戳表示datetime,time及calendar模組 datetime 以毫秒形式儲存時間和日期date...

代數拓撲在資料科學中有何應用?

Tikvatenu 首先,我們很難對一些漂亮的理論 e.g.Lurie s Higher Topos Theory,Topological K Theory 在資料科學裡的應用有太樂觀的信念。我們知道資料科學的通常場景是從高維分布裡取樣的資料點集,而我們不見得具備關於這個分布的先驗知識。這也是為什麼...

Python在資料分析方面取代R語言和MATLAB會是大勢所趨嗎

阿道克 我是R使用者,用了十來年了吧。我覺得R和Python的問題不是誰取代誰,而是兩者何時融合產生新工具,畢竟兩者一直在取長補短相互借鑑。R不是通用程式語言,而是統計程式語言,這是缺點也是優點。R很難像Python那樣大流行,但是專業性強也不容易被通用工具取代。反而是Python,如果有了更好用的...