R和python資料分析方面的對比爭論

2021-08-29 07:38:22 字數 1369 閱讀 5226

面對大量的資料進行分析時,選擇一款好的工具或者方法至關重要,節約時間的同時,還能讓資料結構清晰明了,在最近幾年,用r, python的人越來越多,於是出現了眾多關於用哪個做資料分析最好的爭議。

在這裡分享一下關於r和python資料分析方面的觀點:

首先,從整體來說,認為資料分析需要的是在有限時間內,用最可行的方式拿到最有用的結果。因此,不應該侷限於任何單一的程式設計方法,而應該是各取所長,根據個人特點,問題的形式而靈活選取或者結合。

其實,關於r做資料分析的優勢已經不言而喻了,眾多和全面的統計方法使得從方法上來說,r的資料分析能力是其他幾個不能比擬的。其實爭議最多的也就是出現在其計算效能和全面性上。

1.運算速度:

針對於程式速度的比較,有眾多的測試方法和不同的結果。

綜合其他各個地方的測試結果,其實大體說來從基本運算速度來說,python r. 但是要注意,這裡所說的運算速度是「基本計算」。也就是說不涉及引用特殊package,不用特殊資料結構和運算方式(比如r中的向量化運算)的運算。而這樣的運算比較很大程度上取決於基本程式邏輯的速度,比如for迴圈。r在這點的表現是很差的。基本上會比pyhon慢 3~10倍。

但是,如果你願意多花些心思更好的利用向量化程式設計進行計算,那麼無論從程式的長度來是速度上,都會使r的表現有顯著性提高。總之,在這樣的使用方式下,對大部分運算,r的速度是可以和python接近的,當然,使用者也需要花更多地心思去優化程式。

除此之外,在實際使用的角度來說,資料分析在r中大部分時候使用已有的方法,因此可以使用眾多已經成型的package。如果你使用的package質量很好,通常在大計算量的程式中,作者實際使用的都是更低階更高效的語言(比如c, fortran)。因此,這些大計算量的步驟實際上是以最高效的方式完成的。如果相應的運算在pyhon裡面沒有呼叫其他低階語言的優化,r就可以在這些方面勝過python。我這裡說到的是不需要自己編寫的底層語言呼叫,在r和python中都可以實現呼叫別的語言,但是這需要使用者自己程式設計,從人工角度來講,專業性較高,不在討論範圍。

整體來說,對於對r使用和程式設計有一定深入理解的人來說,不認為r做資料分析的速度會比python差。但是對於簡單粗暴的程式設計方式,python的確更勝一籌。

2.全面性:

從這點來說,認為python的確勝過r。無論是對其他語言的呼叫,和資料來源的連線、讀取,對系統的操作,還是正則表達和文書處理,python都有著明顯優勢。畢竟,python本身是作為一門計算機程式語言出現的,而r本身只是源於統計計算。所以從語言的全面性來說,兩者差異顯著。

綜上所述,對於本地檔案直接的資料分析,大部分時候r是比較python更好的 (速度相近,但分析更專業)。如果涉及多方資源的協調(比如遠端、資料庫、系統、網頁),那麼最好的方式是將python和r相結合使用。

當然,每種語言有自己的學習曲線。因此學習本身也要多花時間,因此如何選取還要依賴於個人而論。

python在資料分析方面的簡介

具體來說,我常用的python在統計上面的package有這樣一些 1.numpy與scipy。這兩個包是python之所以能在資料分析占有一席之地的重要原因。其中numpy封裝了基礎的矩陣和向量的操作,而scipy則在numpy的基礎上提供了更豐富的功能,比如各種統計常用的分布和演算法都能迅速的在...

MATLAB在資料分析方面的應用

引數為向量時 引數為矩陣時 標準差 呼叫格式 std x 計算向量x的標準差。std a 計算矩陣a的各列的標準差。std a,flag,dim flag取0或1,當flag 0時,按s所列公式計算 樣本標準差 當flag 1時,按s2所列公式計算總體標準差。預設情況下,flag 0,dim 1。x...

MPII資料集單人方面的資料分析!!!

1 在訓練hourglass的時候,有幾個檔案需要清楚 annot.h5檔案是包含了25925個人的訓練集,對應著17408張 train.h5是包含了22246個人的訓練集,對應著14679張 valid.h5是包含了2958個人的驗證集,對應著2729張 test.h5是包含了11731個人的測...