打敗 R 語言,Python 是如何登基成為史上最熱門數據分析語言?

【我們為什麼挑選這篇文章】

KDnuggets 是俄國電腦科學家 Gregory Piatetsky-Shapiro 建立 20 年的網站。簡單來說,KDnuggets 網站簡直就是「數據分析」領域的寶藏窟,常年分享數據科學相關資源。而 這次的數據分析語言最新調查就是此網站發起的。

為什麼 Python 深受工程師們的喜愛且備受看好?還被認為是最適合用來發展數據分析的語言?這篇文章都一一告訴你!(責任編輯:劉庭瑋)

根據 KDnuggets 2017 年最新調查,Python 生態系統已經超過了 R,成為了數據分析、數據科學與機器學習的第一大語言。本文對 KDnuggets 的此項調查結果做了介紹,並補充了一篇文章講解為何 Python 能成為數據科學領域最受歡迎的語言。

Python vs R:2017 年調查結果

近日,KDnuggets 發起了一項調查,問題是:

你在 2016 年到現在是否使用過 R 語言、Python(以及它們的封裝包),或是其他用於數據分析、數據科學與機器學習的工具?

預料之內的是,Python 並沒有完全「吞噬」R 語言的空間,但這項 基於 954 個參與者的投票顯示 ,Python 生態系統在今年已經超越了 R 語言,成為了數據分析、數據科學和機器學習的第一大語言。

值得一提的是,在 2016 年的調查中,Python 還處於落後地位(34% 比 42%),在 2017 年,兩者的對比是 41% 比 36%。

此外,參與這項調查的 KDnuggets 讀者也 有傾向於共同使用 Python 和 R 兩種語言的趨勢(12%),而使用其他工具的人則有所減少(從 16% 降至 11%)。

圖 1. 2016 年與 2017 年在數據分析、數據科學和機器學習上,Python、R、兩者共同使用,以及其他平臺的人數對比。

 

下面,讓我們看看不同平臺之間的轉換。

圖 2. 2016 年與 2017 年間,數據分析、數據科學和機器學習上,Python、R、兩者共同使用,以及其他平臺的人數轉換示意。

TO 編按:四個語言(或共同使用語言)上方的翻轉大箭頭,顯示了有比例的使用者在 2016 年到 2017 年間還是持續使用此語言。Python 使用者留存率最高,達 91 %,R 語言則只有 72 %。有趣的觀察是,共同使用 Python 以及 R 語言的人,有 38% 最終會轉而選擇使用 Python 作為主要工具。

這張圖看起來有點複雜,其中有兩個主要方面都是 Python 獲得勝利。

忠誠度 :Python 的用戶顯得更加忠誠,有 91% 的 2016 年 Python 用戶仍然在使用這個語言,而 R 語言的忠誠度為 74%,其他平臺為 60%。

轉換趨勢 :只有 5% 的 Python 用戶轉投 R 語言,反向轉換的比例則是 10%。而對於在 2016 年使用兩種語言的用戶而言,只有 49% 的人仍在使用雙平臺,38% 現在只用 Python,而 11% 轉移到了 R 語言上。

在 KDnuggets 2015 年的調查中,並沒有提出「同時使用 Python 和 R 語言」的選項,所以下圖的趨勢線中,2016 年和 2017 年的數據按照如下公式進行了轉換

  • Python=(Python 比例)+50%(同時使用 Python 和 R)
  • R=(R 比例)+50%(同時使用 Python 和 R)

我們可以看到,R 語言的使用份額正在逐漸下降(從 2015 年的 50% 降低到了 2017 年的 36%),而 Python 的比例則呈逐年上升趨勢——從 2014 年的 23% 增加到了 2017 年的 47%。 同時,其他平臺的使用量在逐漸減少。

最後,讓我們看看這次調查的參與者地區分布:

美國/加拿大:40%
歐洲:35%
亞洲:12.5%
拉丁美洲:6.2%
非洲/中東:3.6%
澳大利亞/紐西蘭:3.1%

為了簡化圖表,在下圖中,同時使用兩種語言與使用其他語言的比例被合併。

圖 4:分區域對比 Python、R 以及其他語言,2016 年和  2017 年的語言使用消長變化。

我們在所有地區都發現了同樣的模式:

Python 的比重增加了 8%-10%;
R 語言的比重下降了 2%-4%;
其他平臺的比重下降了 5%-7%。

Python 用戶的未來看起來一片光明,但我們預期 R 和其他平臺在未來會保持住一定比重,因為它們巨大的嵌入式基礎。

Python 是如何上升到數據科學頂峰?

可以肯定地說,Python 是一個十分受歡迎的工具,它涵蓋了各個行業的各種職業。由於它親近性的語言、豐富的資源和框架以及它龐大的硬體開發族群,Python 自然是開發人員們的首選工具。

Packt 在 2017 年的技能調查顯示,在不同職位的技術專業人員中,Python 從 2016 年的第二名上升成為用戶最多的工具。

我們向 Sebastian Raschka 提問:為什麼不論是應用機器學習還是深度學習的研究者,亦或是 Packt 的暢銷書 Python 機器學習的作者都轉向了 Python 學習?這個語言的下一步將會是什麼?他不得不承認:Python 已成為近二十年來最流行的語言

TO 編按:Sebastian Raschka 為《Python 機器學習》(Python Machine Learning)一書作者。

Python 是如何成為數據科學通用語言?

Python 是有史以來最流行的程式語言之一,這一點是毫無疑問的。但是一開始是如何發生的確實很難描述,是語言本身還是對編程語言的愛?是否是我們首先為科學計算、數據科學以及機器學習開發出優秀的開源的數據庫才推動了大家選擇 Python 作為他們的工具,或是因為越來越多的人在使用 Python 我們才把這些開發出來?

無論哪一種是對的,有一件事是足夠顯而易見的: Python 是一種非常通用的語言,易於學習和使用。 在我看來,這是今天它被如此普遍使用的原因。雖然科學計算的大多數算法都沒有在純 Python 中實現,Python 仍然是用於與 Fortran,C / C ++和其他語言中的非常有效的 實現交互的優秀語言。

所謂的從計算高效的低級語言調用代碼,以及 Python 為用戶提供一個非常自然和直觀的程式編寫接口 的這一事實可能是 Python 作為通用語言普及的重要原因之一,特別是在數據科學和機器學習社區中體現的更為明顯。

未來的框架:我們應該關注什麼工具、框架和數據庫

Python 開發了許多有趣的庫。作為一名數據科學家或機器學習從業者,我時常從 Python 核心科學堆棧中重點關注維護良好的工具。例如,NumPy 和 SciPy 是就是用於處理數據數組和科學計算的高效庫。

當涉及嚴重的數據清洗時,我們可以使用多功能的 Pandas 包。Pandas 是一個開源庫,可以為 Python 編程語言提供快速簡化的數據處理和數據分析工具,它主要是為 Python 提供現實和高端的數據分析。我還建議使用 Matplotlib 進行數據可視化,Seaborn 還可以提供更多的繪圖功能和更專門的繪圖。此外 Scikit 學習是一個很好的通用機器學習工具,它為數據挖掘和分析提供了有效的工具。這可能是我最喜歡的一款了,因為它幾乎可以為所有的基本機器學習算法和許多有用的數據處理工具提供一個非常好用的 API。

當然,我在自己的項目中發現了很多有用的庫。當我需要額外的性能時,我首選的數據框架庫是 Dask。Dask 是一個非常適合處理大型、難以裝入內存的數據框架的庫,它還能在多個處理器中進行並行計算。或者使用 TensorFlow、Keras 和 PyTorch,所有這些都非常適合實現深度學習模型。使用什麼庫取決於你的個人偏好和項目需求,但是一直以來都有很多方便有趣、使用 Python 開發的框架,關鍵是找到適合你自己的。

TO 編輯筆記整理:

  1. NumPy 和 SciPy:用於處理數據數組和科學計算的高效庫,是被重點關注並且維護良好的工具。2.
  2. Pandas:一個開源庫,可以為 Python 編程語言提供快速簡化的初步數據處理和數據分析工具。
  3. Matplotlib :數據視覺化實用工具。
  4. Seaborn :提供更多的繪圖功能和更專門的繪圖。
  5. Scikit :是一個很好的通用機器學習工具,它為數據挖掘和分析提供了有效的工具,而且有很好的使用介面。
  6. Dask:非常適合處理大型的數據框架庫,它還能在多個處理器中並行運算。
  7. TensorFlow、Keras 和 PyTorch:皆適合建立深度學習模型。

Python 的未來是什麼樣的?

在大多數人的眼裡,Python 的未來非常光明。這個語言剛剛被 IEEE Spectrum 列為第一大程式語言。而 Packt 出版社最近的調查也顯示它是最近一段時期內科技界最為流行的工具。僅管在這裡,我們主要從數據科學和機器學習的角度談論 Python,但我們也會經常聽說其他領域的人們也認為 Python 是一種功能豐富的語言,擁有大量的庫和完整的生態系統。Python 或許不是所有問題的最佳工具,但對於想要「完成任務」的程序員來說,它被認為是一種「有效」的語言。

此外,雖然 擁有大量庫是 Python 的優勢之一, 但它的大多數開發包目前都得到了很好的維護—— 那些數據科學和機器學習庫每天都有新特性與提升。 例如 2006 年發起的 NumPy 項目,作為 Python 數據科學的核心庫,最近它剛剛接受了價值 64.5 萬美元的資助。

Python 及其相關庫在我們的工作中扮演了重要角色,我非常感謝所有這些工具背後的開發者,沒有這些開源庫,Python 就沒有今天。對於我們來說,Python 可以成為非常重要的工具,我希望它的用戶們能夠多考慮幫助開源社區的發展,不論文檔修改、bug 修復還是新代碼、新特性或新庫,所有貢獻都將幫助整個社區向前發展。因為這個富有活力的社區,Python 的未來有著光明的前景。

(本文經 機器之心 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈 為何 Python 攀上數據科學巔峰?KDnuggets2017 調查 Python 超越 R 〉。)

延伸閱讀

附資源與完整指導!帶你從零開始掌握 Python 機器學習
想學 coding 就從 Python 開始!超 Java 趕 C++,Python 登上最受歡迎程式語言 2017 年最完整自學資源懶人包:Python、Google Analytics 到人工智慧想學什麼全都包
【寫啥語言與國家經濟有關?】高收入國家喜歡 R、Python;低收入國家喜歡 PHP 與 Android 開發
哪個程式語言最先死:Python 只剩 25 年可活,C 語言卻可以活到 2062?


321 倒數 ,2020 只剩 3 年,區塊鏈、5G、AI 技術將成熟到位。
從產業到社會,台灣沒剩多少時間準備。

12/9 TechOrange、BuzzOrange「CONNECT 2020」年度產業論壇,連結未來改革能量

點關鍵字看更多相關文章: