r語言和python有必要都學嗎

R和Python是目前最流行的兩款高級編程語言,被大量運用於數據科學領域。兩者都是開源的,也都有非常活躍的社區來支撐。那麼問題來了:r語言和python有必要都學嗎

r語言和python有必要都學嗎

R:

R語言由新西蘭奧克蘭大學的Ross Ihaka和Robert Gentleman於1995設計出來(由於兩人的名字均以 ‘R’ 字母開頭,因此命名為R語言),現在由“R核心開發團隊“負責開發。

雖然R主要用於數據分析、繪圖以及數據挖掘,但也有人用作矩陣計算。其計算速度可媲美專用於矩陣計算的開源軟件GNU Octave和商業軟件MATLAB。

起初R主要在學術研究中使用,但近年來在企業界也表現突出,這使得R成為企業中使用的全球發展最快的統計語言之一。對於數據科學任務,R的語法更直觀形象

對於數據處理任務,很多時候R的語法會更簡單。函數和參數的命名設計也更好,很容易記住和使用。

舉個例子,我們將分別用R和Python來刪掉Iris數據框中的兩個變量(由於R和Python都有Iris數據框,因此我們使用這個數據框)。

我們來看看各自的語法:

Python

import seaborn as sns

import pandas as pd

iris = sns.load_dataset('iris')

iris.drop(['sepal_length', 'species'], axis = 1)

R

library(dplyr)

select(iris, -sepal_length, -species)

為了刪除變量,Python中使用了drop函數,而R中使用了select函數。我們來對比這兩個函數(都在最後一行代碼)的語法。

先講Python,drop函數命名得很好,容易記住。但是參數設計得很複雜。

第一個參數是包含想要刪除變量的列表,Python中用方括號[ ]代表列表。這裡你必須要用方括號,而且變量一定要用引號' ',要不然代碼會運行錯誤。

在數據可視化方面,R非常優秀

可視化是選擇數據分析軟件的一個重要的標準。

除了擅長數據分析外,R的另外一個閃光點就是它的畫圖能力特別強,幾乎可以繪製出所有類型的圖。不信的話,你可以Google一下,輸入 'R visualization' 關鍵字。

Python的優勢

對於數據科學初學者,儘管我強烈推薦學R,但也不是唯一的選擇。

對於某些人,Python可能是最好的選擇。下面講一下哪些情況下選擇Python更好。

如果你有軟件開發或計算機科學基礎,學Python

如果你曾經有軟件開發經驗或者你是計算機科學專業的話,我認為Python會更適合你。因為你已經有編程經驗了,使用Python會讓你更舒服。

想開發軟件,學Python

我已經說了R更擅長數據科學。如果你想建立軟件系統的話,我認為Python更合適。Python的閃光點就是寫軟件,效率很高。就像一些專家所說的那樣,寫Python代碼就如同寫偽代碼。

此外,Python是一門通用語言,基本啥都能幹。然而R比較專,只是擅長統計分析和可視化。

我想澄清一下,不是說R不能寫軟件。只是更多人喜歡用Python去建立產品軟件。因此作為數據科學家,如果你想創立軟件系統,我覺得Python比R更合適。

想搞機器學習,學Python

如果你想長期從事機器學習方面的研究,我建議你學Python。

其實R也有機器學習生態系統。特別地,R的caret 包開發得很好,它有能力完成各種機器學習任務。比如:使用caret包建立迴歸模型(regression model)、支持向量機(SVM)、決策樹(包括迴歸和分類)以及執行交叉驗證(cross validation)等等。總之,R的機器學習生態系統發展得很好。

但是,Python在機器學習方面的支持出現更早。為實現各種不同機器學習方法,Python的scikit-learn庫提供了一套更加簡潔和易讀的語法。而R中caret包的語法有時有點拙劣。尤其,caret包與Tidyverse包兼容得不是很好,輸出的結果有時也很難處理。相反,Python的scikit-learn庫與Python生態環境整合得很好。

市面上有關機器學習的書籍,其算法實現很多都是用Python寫的。

總之,如果你想致力於機器學習,我認為Python會更好。

想搞深度學習,學Python

深度學習可謂是目前人工智能領域最熱門的技術之一,而Python是深度學習使用最熱門的語言。

大多數深度學習框架都有Python接口,比如:TensorFlow,Keras,Pytorch,Theano,MXNET等等。

Python與各框架兼容得非常好,擁有大量貢獻者、搜索結果、相關書籍和學術文章;Github上的深度學習項目大多數都是用Python寫的。如果你是剛入門深度學習的新手,使用Keras是不錯的選擇。

相比較,R對深度學習框架兼容方面表現不佳。因此如果你想專注深度學習,Python可能更適合。

學R還是Python?主要還是依耐你的背景以及你的目標。

如果你沒有任何編程經驗,建議你先學R;如果你想學數據可視化,我認為R的ggplot2包是最好的工具;如果你想專門從事數據分析和數據挖掘,R表現更優秀。

如果你想成為機器學習專家,Python的scikit-learn庫可以好好研究一下;如果你想開發軟件系統,Python更合適。

俗話說,技多不壓身,你還有第三個選擇:R和Python都學。實際上很多頂尖數據科學家這兩門語言都會。不過對於新手,一次只學一門。同時學兩門會讓你很混亂,學習週期會拉長,事倍功半。

以上就是r語言和python有必要都學嗎的詳細內容,更多請關注其它相關文章!

更多技巧請《轉發 + 關注》哦!


分享到:


相關文章: