編程語言排行榜Python高居首位,是什么讓它成為最流行的機(jī)器學(xué)習(xí)語言!
Python,是一種面向?qū)ο蟮慕忉屝陀嬎銠C(jī)程序設(shè)計語言,由荷蘭人Guido van Rossum于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。
自從20世紀(jì)90年代初Python語言誕生至今,它已被逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web編程。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。自從2004年以后,python的使用率呈線性增長。去年7月20日,IEEE發(fā)布2017年編程語言排行榜:Python高居首位。
是什么讓Python成為當(dāng)今最流行的機(jī)器學(xué)習(xí)語言!是大數(shù)據(jù)時代背景的契合,還是其特有的生態(tài)系統(tǒng),或是語言本身?
首先當(dāng)然是因為大家的life都很short,Python作為解釋型語言,雖然跑得比誰都慢,但減少了開發(fā)者的工作量。Python開發(fā)者的哲學(xué)是"用一種方法,最好是只有一種方法來做一件事"。在設(shè)計Python語言時,如果面臨多種選擇,Python開發(fā)者一般會拒絕花俏的語法,而選擇明確的沒有或者很少有歧義的語法。簡單易學(xué)的特點催生了龐大的用戶群體和活躍社區(qū),機(jī)器學(xué)習(xí)框架的制作者也是為了走群眾路線讓更多人用,Python比較接地氣。
Python成為機(jī)器學(xué)習(xí)主力的第二個主要原因,是因為Python提供大量機(jī)器學(xué)習(xí)的代碼庫和框架。利用python可以享受很多便捷的數(shù)學(xué)運(yùn)算第三方庫,比如NumPy、SciPy,在可視化方面有MatplotLib和SeaBorn,結(jié)構(gòu)化數(shù)據(jù)操作可以通過Pandas得到R一般的體驗,針對各種垂直領(lǐng)域比如圖像、語音、文本在預(yù)處理階段都有很成熟的庫可以調(diào)用,人們常說:"就你庫多"。Python標(biāo)準(zhǔn)庫確實很龐大。它可以幫助處理各種工作,包括正則表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的"功能齊全"理念。除了標(biāo)準(zhǔn)庫以外,還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。
當(dāng)然,這個代碼系統(tǒng)還有一些不足的地方,因此產(chǎn)生了很多變通方案。例如Anaconda等發(fā)行版有自己的打包機(jī)制,可以很好地處理對不屬于Python生態(tài)系統(tǒng)的可執(zhí)行文件的依賴。但是,總的來說,Python打包生態(tài)系統(tǒng)為機(jī)器學(xué)習(xí)提供了一定程度的便利性,這與Python一貫堅持的簡易性和便利性很相符。
最后也就是性能方面。Python性能方面當(dāng)然是無法滿足大規(guī)模數(shù)據(jù)訓(xùn)練的,所以一般企業(yè)都是先用Python搭建原型,然后用C++或者JAVA來實現(xiàn)工程化,再用Python封裝留出接口。另外,得益于Python對C的接口,很多像gnumpy, theano這樣高效、Python接口友好的庫可以加速程序的運(yùn)行,在強(qiáng)大團(tuán)隊的支撐下,這些庫的效率可能比一個不熟練的程序員用C寫一個月調(diào)優(yōu)的效率還要高。
所以說,讓Python在機(jī)器學(xué)習(xí)領(lǐng)域異軍突起的不僅是某個單一功能,而是Python整個語言包:簡單易學(xué)讓它更接地氣,它的生態(tài)系統(tǒng)擁有的第三方代碼庫可以涵蓋廣泛的機(jī)器學(xué)習(xí)用例和性能,可以幫助你很好地完成手頭的工作。