Python與R、Matlab在資料分析的趨勢對比

作為一枚程式設計師,想要研究Python程式語言與數學學習(教學)的結合,就不能不瞭解以及比對一下其他數學學習與應用的解決方案,比如R語言、Matlab等數學軟體。經過廣泛的搜尋瞭解了一下國外的反饋與趨勢之後,最終的結論就是Python確實是未來。

Python與R語言的對比

Python與R語言在資料分析領域的對比,DataCamp上有一篇引用率非常高的文章,資料分析選擇R還是Python,不過這篇文章是2015年寫的,我們先大致總結一下文章內容:

R主要用於學術與研究,也開始迅速進入企業市場,越是接近統計學、研究、資料科學,你就會越偏愛R,而Python主要用於程式設計師想進入資料分析領域、掌握統計技能,以及其他開發人員進入資料科學領域。如果你的工作越接近工程環境,你會越偏愛Python。

R的社群生態主要是研究員,資料科學家、統計學家和量化研究員,而Python主要是程式設計師和開發者。

R學習門檻比較高,但是當你掌握了基礎之後就學起來比較容易,R對程式設計師來說不難;Python可讀性強,入門非常容易,被公認為非常不錯的入門程式語言。

在2015年前的Tiobe程式語言的排名上Python排名在第4或第5,R排在第17到13。而據2015資料分析領域,用R的研究員佔58%,Python佔42%,兩者都用的佔23。45%;

在2013年,R轉Python的有26%,Python轉R的有18%,而新進入資料分析領域的有44%的人選擇R,23%的人選擇Python。

從2015年之前的情況看來,正如作者所說,R和Python在資料分析領域確實平分秋色,難分伯仲,從資料中我們可以看出,雖然Python相比R更流行,在程式設計方面更有優勢,但是在資料科學領域,選擇使用R的人更多。

但是翻到2018年的文章裡看到2016、2017年的資料,情況下發生了逆轉。在資料科學領域,2016年有34%的人選擇Python,42%的人選擇R,而到了2017年41%的人選擇Python,36%的人選擇R。在2017年的調查統計裡資料科學家和工程師最流行的程式語言分別是JavaScript(58。7%,令人驚訝啊,可能與資料視覺化有關?)、SQL(58%)、Python(45%),而R(11。2%),Python在商業領域比較火,而R在學術和研究領域比較多,所以不那麼流行吧。而在最近的Tiobe的排行榜上,與資料科學相關的程式語言Python、R、SQL、Matlab等漲幅都比較大,Python在整個程式語言的流行度也由2014年的2%猛增到2019年8。26%,躍居第3,成為2018年年度語言。

Python、R、Scala在資料科學領域的流行包

Python與R、Matlab在資料分析的趨勢對比

Python與Matlab的對比

雖然不是學數學的,但是Matlab的大名可是如雷貫耳,與數學相關專業、相關行業的學生、工程師們基本一定會使用到它。MathWorks公司跟設計公司Adobe、三維軟體公司Autodesk一樣都是極其硬核的存在,旗下的產品不僅是學習必備,而且是工程(比工作聽起來霸氣)必備。我個人對Matlab的瞭解極其有限,Python與Matlab的對比我也只能像一個產品經理去廣泛查閱專業意見來權衡利弊。我所得出的結論也只是基於掌握了Python的前提,斷不敢用偏頗的立場去褻瀆神器。 我們來看一下美國相關專業人員對兩者的對比,只是粗略而不精準的翻譯一下。

我是一名工程師,之前長期使用Matlab來處理複雜的數學運算都沒有遇到什麼大的問題,就在幾個月前因為崗位需要學習了Python之後,我才意識到Matlab相比Python是多麼的糟糕。之前需要我用Matlab花一整天處理的問題用Python只需數小時,Python的表現、流暢度讓我驚訝。而且使用Python我可以做之前用Matlab做的任何事情,而且更優秀。因此我非常建議Matlab使用者轉向Python。Python程式語言比Matlab更強大,能夠聯合非常多的外部工具模組,只需一個檔案就可以呼叫非常多的庫、函式、類,語法也更加簡單,面向物件開發也更加方便,還能非常方便地呼叫C、C++、Fortran。Python是免費的,而且可以執行在更多平臺上面。 ——-Stackoverflow某工程師

經過調查Matlab與Python的宿命之爭在2011年就開始了,而且網上Matlab與Python的對比文章、評論非常之多。Matlab官方在2013年就開始拿Matlab和Python進行對比官方對比最是致命:MATLAB OR Python中文,年代越近,由Matlab全面轉向Python的建議就越多,更多人直言Python是未來的程式語言,在Python與Matlab的選擇之上,看了非常多的建議,已成一邊倒的趨勢。 有人列出了Python相對於Matlab的8大優勢,我只粗略翻譯一下這8大優勢,詳情大家可以去檢視原文:

Python的程式碼相比於Matlab更簡潔,可讀性更強;

和其他程式設計一樣,Python都是從0開始計數,而Matlab不是;

Python可以更好的支援雜湊字典;

面向物件開發讓Python更簡單、更優雅;

Python免費且開源;

Python一個檔案、模組裡可以包含非常多的函式;

Python支援import宣告;

Python支援更多影象處理的包和工具集

在PyCon 2017年的大會上,多位大佬提出科學家應該全面擁抱Python,在2015年開始Python在NASA的地位就開始遙遙領先IDL、Matlab和Fortran。由於這裡我們只討論Python和Matlab在數學上的對比,至於科學家轉型Python的優勢的細節,大家可以看DataCamp的雄文。

小結

其實在寫這篇文章之前,我就問過一下包括清華在內的學校以及一些數學專業的學生,Matlab和R還是佔主流,但是經過一番調查發現在美國Python在資料科學、數學等方面好像漸成壓倒性的優勢。這也激勵我要把用Python學數學的專欄給寫下去。

以上為2019年3月份的對比

2020年11月的新趨勢調查

對於沉迷於比較的我來說,2019年調查的對比結果可能過於陳舊,於是我又進行了一番調查。

以下是Kaggle (瞭解資料分析的童鞋,我就不介紹了)2019年年底做的使用者調查,收到了近2萬份的回覆,從事資料分析相關行業的職業主體最多的是資料科學家、學生、軟體開發工程師(程式設計師肯定首選Python)、市場調查、商業分析、產品經理和資料工程師、統計學家等:

Python與R、Matlab在資料分析的趨勢對比

而其中MySQL和PostgresSQL是最流行的關係型資料庫,最流行的AI框架PyTorch, Tensorflow, and Keras全部都是基於Python的,Matplotlib和Seaborn是用得最多的資料視覺化包,怎麼又和Python貼合得比較緊密?50%以上的人使用Jupyter notebook,其次是VS Code和R studio(兩個差不多)。

而這2萬人最經常使用的程式語言是Python,其次是SQL,然後是R,從資料上來看使用Python的人是R的3倍,是Matlab的N倍。而只使用Python的人比只使用R的人要高數倍,也就是說會R的童鞋也會去學Python,會Python的未必會去學R。

Python與R、Matlab在資料分析的趨勢對比

從以上資料可以看出,經過了幾年的發展(可以瞭解一下我之前調查的情況),Python的流行度越發地擠佔了R和Matlab的空間了,資料顯示這就是趨勢,不以個人的喜好或者理解而改變。

TAG: Pythonmatlab程式語言資料資料分析