掃二維碼與項目經理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流
根據(jù)KDnuggets 2017年最新調查,Python生態(tài)系統(tǒng)已經超過了R,成為了數(shù)據(jù)分析、數(shù)據(jù)科學與機器學習的第一大語言。本文對KDnuggets的此項調查結果做了介紹,并補充了一篇文章講解為何Python能成為數(shù)據(jù)科學領域最受歡迎的語言。

我們擁有十余年網頁設計和網站建設經驗,從網站策劃到網站制作,我們的網頁設計師為您提供的解決方案。為企業(yè)提供成都網站建設、網站建設、微信開發(fā)、微信小程序定制開發(fā)、移動網站建設、HTML5建站、等業(yè)務。無論您有什么樣的網站設計或者設計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設計服務并滿足您的需求。
Python vs R:2017 年調查結果
近日,KDnuggets 發(fā)起了一項調查,問題是:
你在 2016 年到現(xiàn)在是否使用過 R 語言、Python(以及它們的封裝包),或是其他用于數(shù)據(jù)分析、數(shù)據(jù)科學與機器學習的工具?
預料之內的是,Python 并沒有完全「吞噬」R 語言的空間,但這項基于 954 個參與者的投票顯示,Python 生態(tài)系統(tǒng)在今年已經超越了 R 語言,成為了數(shù)據(jù)分析、數(shù)據(jù)科學和機器學習的第一大語言。
值得一提的是,在 2016 年的調查中,Python 還處于落后地位(34% 比 42%),在 2017 年,兩者的對比是 41% 比 36%。
此外,參與這項調查的 KDnuggets 讀者也有傾向于共同使用 Python 和 R 兩種語言的趨勢(12%),而使用其他工具的人則有所減少(從 16% 降至 11%)。
圖 1. 2016 年與 2017 年在數(shù)據(jù)分析、數(shù)據(jù)科學和機器學習上,Python、R、兩者共同使用,以及其他平臺的人數(shù)對比。
下面,讓我們看看不同平臺之間的轉換。
圖 2. 2016 年與 2017 年間,數(shù)據(jù)分析、數(shù)據(jù)科學和機器學習上,Python、R、兩者共同使用,以及其他平臺的人數(shù)轉換示意。
這張圖看起來有點復雜,其中有兩個主要方面都是 Python 獲得勝利。
忠誠度:Python 的用戶顯得更加忠誠,有 91% 的 2016 年 Python 用戶仍然在使用這個語言,而 R 語言的忠誠度為 74%,其他平臺為 60%。
轉換趨勢:只有 5% 的 Python 用戶轉投 R 語言,反向轉換的比例則是 10%。而對于在 2016 年使用兩種語言的用戶而言,只有 49% 的人仍在使用雙平臺,38% 現(xiàn)在只用 Python,而 11% 轉移到了 R 語言上。
在 KDnuggets 2015 年的調查中,并沒有提出「同時使用 Python 和 R 語言」的選項,所以下圖的趨勢線中,2016 年和 2017 年的數(shù)據(jù)按照如下公式進行了轉換
我們可以看到,R 的使用份額正在逐漸下降(從 2015 年的 50% 降低到了 2017 年的 36%),而 Python 的比例則呈逐年上升趨勢——從 2014 年的 23% 增加到了 2017 年的 47%。同時,其他平臺的使用量在逐漸減少。
最后,讓我們看看這次調查的參與者地區(qū)分布:
為了簡化圖表,在下圖中,同時使用兩種語言與使用其他語言的比例被合并。
圖 4:分區(qū)域對比 Python、R 、其他,2016 對比 2017
我們在所有地區(qū)都發(fā)現(xiàn)了同樣的模式:
Python 用戶的未來看起來一片光明,但我們預期 R 和其他平臺在未來會保持住一定比重,因為它們巨大的嵌入式基礎。
Python 是如何上升到數(shù)據(jù)科學頂峰的
可以肯定地說,Python 是一個十分受歡迎的工具,它涵蓋了各個行業(yè)的各種職業(yè)。由于它親近性的語言、豐富的資源和框架以及它龐大硬件開發(fā)族群,Python 自然是開發(fā)人員們的首選工具。Packt 在 2017 年的技能調查顯示,在不同職位的技術專業(yè)人員中,Python 從 2016 年的第二名上升成為用戶最多的工具。我們向 Sebastian Raschka 提問:為什么不論是應用機器學習還是深度學習的研究者,亦或是 Packt 的暢銷書 Python 機器學習的作者都轉向了 Python 學習?這個語言的下一步將會是什么?他不得不承認:Python 已成為近二十年來最流行的語言。
艱難登頂:PYTHON 是如何成為數(shù)據(jù)科學通用語言的?
Python 是有史以來最流行的編程語言之一,這一點是毫無疑問的。但是最初發(fā)生的事情確實很難描述的,是語言本身還是對編程語言的愛。是否是我們首先為科學計算、數(shù)據(jù)科學以及機器學習開發(fā)出優(yōu)秀的開源的數(shù)據(jù)庫才推動了大家選擇 Python 作為他們的工具,或是因為越來越多的人在使用 Python 我們才把這些開發(fā)出來。
無論哪一種是對的,有一件事是足夠顯而易見的:Python 是一種非常通用的語言,易于學習和使用。在我看來,這是今天它被如此普遍使用的原因。雖然科學計算的大多數(shù)算法都沒有在純 Python 中實現(xiàn),Python 仍然是用于與 Fortran,C / C ++和其他語言中的非常有效的實現(xiàn)交互的優(yōu)秀語言。
所謂的從計算高效的低級語言調用代碼,以及 Python 為用戶提供一個非常自然和直觀的編程接口的這一事實可能是 Python 作為通用語言普及的重要原因之一,特別是在數(shù)據(jù)科學和機器學習社區(qū)中體現(xiàn)的更為明顯。
未來的框架:我們應該關注什么工具、框架和數(shù)據(jù)庫
Python 開發(fā)了許多有趣的庫。作為一名數(shù)據(jù)科學家或機器學習從業(yè)者,我時常從 Python 核心科學堆棧中重點關注維護良好的工具。例如,NumPy 和 SciPy 是就是用于處理數(shù)據(jù)數(shù)組和科學計算的高效庫。
當涉及嚴重的數(shù)據(jù)清洗時,我們可以使用多功能的 Pandas 包。Pandas 是一個開源庫,可以為 Python 編程語言提供快速簡化的數(shù)據(jù)處理和數(shù)據(jù)分析工具,它主要是為 Python 提供現(xiàn)實和高端的數(shù)據(jù)分析。我還建議使用 Matplotlib 進行數(shù)據(jù)可視化,Seaborn 還可以提供更多的繪圖功能和更專門的繪圖。此外 Scikit 學習是一個很好的通用機器學習工具,它為數(shù)據(jù)挖掘和分析提供了有效的工具。這可能是我最喜歡的一款了,因為它幾乎可以為所有的基本機器學習算法和許多有用的數(shù)據(jù)處理工具提供一個非常好用的 API。
當然,我在自己的項目中發(fā)現(xiàn)了很多有用的庫。當我需要額外的性能時,我首選的數(shù)據(jù)框架庫是 Dask。Dask 是一個非常適合處理大型、難以裝入內存的數(shù)據(jù)框架的庫,它還能在多個處理器中進行并行計算。或者使用 TensorFlow、Keras 和 PyTorch,所有這些都非常適合實現(xiàn)深度學習模型。使用什么庫取決于你的個人偏好和項目需求,但是一直以來都有很多方便有趣、使用 Python 開發(fā)的框架,關鍵是找到適合你自己的。
Python 的未來是什么樣的?
在大多數(shù)人的眼里,Python 的未來非常光明。這個語言剛剛被 IEEE Spectrum 列為第一大編程語言。而 Packt 最近的調查也顯示它是最近一段時期內科技界最為流行的工具。盡管在這里,我們主要從數(shù)據(jù)科學和機器學習的角度談論 Python,但我們也會經常聽說其他領域的人們也認為 Python 是一種功能豐富的語言,擁有大量的庫和完整的生態(tài)系統(tǒng)。Python 或許不是所有問題的最佳工具,但對于想要「完成任務」的程序員來說,它被認為是一種「有效」的語言。
此外,雖然擁有大量庫是 Python 的優(yōu)勢之一,但它的大多數(shù)開發(fā)包目前都得到了很好的維護——那些數(shù)據(jù)科學和機器學習庫每天都有新特性與提升。例如 2006 年發(fā)起的 NumPy 項目,作為 Python 數(shù)據(jù)科學的核心庫,最近它剛剛接受了價值 64.5 萬美元的資助。
Python 及其相關庫在我們的工作中扮演了重要角色,我非常感謝所有這些工具背后的開發(fā)者,沒有這些開源庫,Python 就沒有今天。對于我們來說,Python 可以成為非常重要的工具,我希望它的用戶們能夠多考慮幫助開源社區(qū)的發(fā)展,不論文檔修改、bug 修復還是新代碼、新特性或新庫,所有貢獻都將幫助整個社區(qū)向前發(fā)展。因為這個富有活力的社區(qū),Python 的未來有著光明的前景。

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流