根據 KDnuggets最新調查,Python 生態系統已經超過了 R,成為了資料分析、資料科學與機器學習的第一大語言。本文對 KDnuggets 的此項調查結果做了介紹,並補充了一篇文章講解為何 Python 能成為資料科學領域最受歡迎的語言。
Python vs R:調查結果
近日,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、兩者共同使用,以及其他平臺的人數轉換示意。
這張圖看起來有點複雜,其中有兩個主要方面都是 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 已成為近二十年來最流行的語言。
艱難登頂: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 開發的框架,關鍵是找到適合你自己的。
Python 的未來是什麼樣的?
在大多數人的眼裡,Python 的未來非常光明。這個語言剛剛被 IEEE Spectrum 列為第一大程式語言。而 Packt 最近的調查也顯示它是最近一段時期內科技界最為流行的工具。儘管在這裡,我們主要從資料科學和機器學習的角度談論 Python,但我們也會經常聽說其他領域的人們也認為 Python 是一種功能豐富的語言,擁有大量的庫和完整的生態系統。Python 或許不是所有問題的最佳工具,但對於想要「完成任務」的程式員來說,它被認為是一種「有效」的語言。
此外,雖然擁有大量庫是 Python 的優勢之一,但它的大多數開發包目前都得到了很好的維護——那些資料科學和機器學習庫每天都有新特性與提升。例如 2006 年發起的 NumPy 專案,作為 Python 資料科學的核心庫,最近它剛剛接受了價值 64.5 萬美元的資助。
Python 及其相關庫在我們的工作中扮演了重要角色,我非常感謝所有這些工具背後的開發者,沒有這些開源庫,Python 就沒有今天。對於我們來說,Python 可以成為非常重要的工具,我希望它的使用者們能夠多考慮幫助開源社群的發展,不論檔案修改、bug 修複還是新程式碼、新特性或新庫,所有貢獻都將幫助整個社群向前發展。因為這個富有活力的社群,Python 的未來有著光明的前景。
整理自:
-
http://www.kdnuggets.com/2017/08/python-overtakes-r-leader-analytics-data-science.html
-
http://www.cbronline.com/news/big-data/analytics/python-rose-top-data-science-world/
文章來源:機器之心(almosthuman2014)
精彩活動
推薦閱讀
2017年資料視覺化的七大趨勢!
全球100款大資料工具彙總(前50款)
Q: 你資料倉庫瞭解多少?
歡迎留言與大家分享
請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:hzzy@hzbook.com
更多精彩文章,請在公眾號後臺點選“歷史文章”檢視