為什么Python語言是入行人工智能的首選語言

在所有編程語言里,Python并不算萌新,從1991年發(fā)布第一個版本,至今已經(jīng)快30年了。
最近幾年,隨著人工智能概念的火爆,Python迅速升溫,成為眾多AI從業(yè)者的首選語言。
根據(jù)數(shù)據(jù)平臺 Kaggle發(fā)布的2017年機(jī)器學(xué)習(xí)及數(shù)據(jù)科學(xué)調(diào)查報告,在工具語言使用方面,Python是數(shù)據(jù)科學(xué)家和人工智能從業(yè)者使用最多的語言(見下圖)。
IEEE綜覽(IEEE Spectrum)發(fā)布的2017最受歡迎編程語言列表中,Python同樣位列第一(見下圖)。
為什么?
原因1:Python是一種說人話的語言
所謂“說人話”,是指這種語言:
開發(fā)者不需要關(guān)注底層
語法簡單直觀
表達(dá)形式一致
我們先來看幾個代碼的例子:
C 語言Hello World 代碼:
intmain() { printf("Hello, World!"); return0; }
Java 語言Hello World 代碼:
publicclassHelloWorld{ publicstaticvoidmain(String[] args){ System.out.println("Hello World!"); } }
Python 語言Hello World代碼:
print("Hello World!")
僅僅是一個Hello World程序,就能看出區(qū)別了,是不是?
編譯 VS 解釋
當(dāng)然,僅僅是一個Hello World的話,C和Java的代碼也多不了幾行。
可是不要忘了,C和Java的代碼要運行,都必須先經(jīng)過編譯的環(huán)節(jié)。
對于C語言來說,在不同的操作系統(tǒng)上使用什么樣的編譯器,也是一個需要斟酌的問題。一旦代碼被copy到新的機(jī)器,運行環(huán)境和之前不同,還需要重新編譯,而那臺機(jī)器上有沒有編譯器還是一個問題,安裝上編譯器后,也許和之前最初的編譯器有所區(qū)別,還得修改源代碼來滿足編譯環(huán)境的需求……
我到底做錯了什么?我只是想運行一個別人寫的程序而已[淚目]
而Python則不用編譯,直接運行。而且都可以不用寫文件,一條條語句可以直接作為命令行運行。不要太方便咯。
語言語法
和Python比,Java的語法更“啰嗦”。
從上面的例子已經(jīng)可以看出,創(chuàng)建一個鏈表,Java還需要聲明和逐個插入節(jié)點,而Python則可一行代碼完成從鏈表創(chuàng)建到插入節(jié)點及賦值的全部操作。
這還只是一個例子。在真正的使用中就會發(fā)現(xiàn),對于很多非常簡單基礎(chǔ)的操作,Java非讓你很別扭地寫好幾行,Python直接一句搞定。
這樣的結(jié)果就是,Python寫起來省事,讀起來也方便??勺x性遠(yuǎn)超Java。
表達(dá)風(fēng)格
在10年或者更久遠(yuǎn)之前,Python經(jīng)常被用來和Perl相提并論。畢竟在那個時候,C是系統(tǒng)級語言,Java是面向?qū)ο笳Z言,而Python & Perl則是腳本語言的雙子星。
Python和Perl在設(shè)計層面有一個非常大的區(qū)別:
Python力求讓不同的人在撰寫同樣功能實現(xiàn)的代碼時,所用的表達(dá)形式盡量一致;
而Perl則是故意追求表達(dá)的千姿百態(tài),讓同一個人在不同地方寫同樣功能時所用具體形式都不同。
從哲學(xué)層面講,Perl的追求更加自由主義,更利于釋放人類的多樣化天性。也確實有很多Geek范兒程序員因為這一點推崇毫無限制的Perl,鄙視到處設(shè)限的Python。
然而,Perl寫的程序——那叫一個亂七八糟!
當(dāng)你想遇到問題,想在網(wǎng)上找點實例代碼看看的時候,搜到的Perl example千姿百態(tài),很難找到一種“大眾”的解法。而不同寫法之間,還很難保證相容。
這個問題其實在Python vs Java上也有,只不過程度要低得多。
Java語言本身并沒有想要把自己變成書寫代碼詩歌的載體。但是因為它長年大量地被應(yīng)用在企業(yè)級軟件的后臺開發(fā),夾雜進(jìn)了太多并非語言本身卻又與其使用不可分割的東西,進(jìn)一步加劇了Java的繁雜。
如果不是想成為代碼詩人,或者語言大師,只是想用盡量簡單直接的方法,把事情做了,首選語言確實是Python。
原因2:強(qiáng)大的AI支持庫
矩陣運算
NumPy由數(shù)據(jù)科學(xué)家Travis Oliphant創(chuàng)作,支持維度數(shù)組與矩陣運算。結(jié)合Python內(nèi)置的math和random庫,堪稱AI數(shù)據(jù)神器!有了它們,就可以放心大膽玩矩陣了!
大家知道,不管是Machine Learning,還是Deep Learning,模型、算法、網(wǎng)絡(luò)結(jié)構(gòu)都可以用現(xiàn)成的,但數(shù)據(jù)是要自己負(fù)責(zé)I/O并傳遞給算法的。
而各種算法,實際上處理的都是矩陣和向量。
使用NumPy,矩陣的轉(zhuǎn)置、求逆、求和、叉乘、點乘……都可以輕松地用一行代碼搞定,行、列可以輕易抽取,矩陣分解也不過是幾行代碼的問題。
而且,NumPy在實現(xiàn)層對矩陣運算做了大量的并行化處理,通過數(shù)學(xué)運算的精巧,而不是讓用戶自己寫多線程程序,來提升程序效率。
有了Python這種:語法簡潔明了、風(fēng)格統(tǒng)一;不需要關(guān)注底層實現(xiàn);連矩陣元素都可以像在紙上寫公式一樣;寫完公式還能自動計算出結(jié)果的編程語言,開發(fā)者就可以把工作重心放在模型和算法上了。
ML模型
用Python實現(xiàn)大多數(shù)經(jīng)典模型,幾十上百行代碼就夠了。
當(dāng)然,對于普通用戶,也可以連算法都不用管,只是調(diào)用Scikit-Learn的接口就可以了。
比如,訓(xùn)練和使用一個logistic Regression模型,只需要下面幾行代碼就可以了:
#import the LogisticRegression from sklearn.linear_model import LogisticRegression #Use default parameters classifier = LogisticRegression() #train model classifier.fit(train_set, target) #dotest y_hat = classifier.predict(test_set) #printout testresults print y_hat
支持圖表
Python還有許多圖標(biāo)方面的支持庫。用來生成dashboard上的各種圖形表格,是非常簡單的事情。
比如使用Plotly圖形庫,下面這些炫彩的圖形,就隨便用啦:
原因3:規(guī)模效應(yīng)
語言簡單易學(xué),支持庫豐富強(qiáng)大,這兩大支柱從早期就奠定了Python的江湖地位。
根據(jù)以高收入國家Stack Overflow問題閱讀量為基礎(chǔ)的主要編程語言趨勢統(tǒng)計,可以看出,近年來,Python已然力壓Java和Java,成為目前發(fā)達(dá)國家增長最快的編程語言(見下圖)。
由圖可見,2012年之后,對于Python相關(guān)問題的瀏覽量迅速增長,從時間上看,這一趨勢正好和近幾年人工智能的發(fā)展重合。
相關(guān)文章
今日頭條原創(chuàng)度檢測工具,教你頭條號被限流了怎么恢復(fù)方法
近期,很多今日頭條的頭條號創(chuàng)作者收到文章不被推薦的提示,原因是與平臺已有內(nèi)容高度相似,對此,我們可以通過以下方法來解決2024-10-21免費AI內(nèi)容檢測器99.98%的準(zhǔn)確度,一鍵改寫降A(chǔ)IGC檢測
作為一款支持多語言免費識別AI生成文章檢測工具,并標(biāo)記出可疑句子,受到了廣大網(wǎng)友的青睞,不用登錄注冊的免費AI文本檢測工具真的太少了,強(qiáng)烈推薦!2024-06-26凈化網(wǎng)絡(luò)環(huán)境,抵制網(wǎng)絡(luò)謠言。
2024年作為打擊整治網(wǎng)絡(luò)謠言專項行動年,鼓樓公安認(rèn)真貫徹落實,公安部統(tǒng)一部署,全面梳理摸排各類網(wǎng)絡(luò)謠言線索,依法嚴(yán)厲打擊,編造傳播網(wǎng)絡(luò)謠言違法犯罪行為,共建清朗網(wǎng)2024-04-29夸克PC版開啟內(nèi)測:主打夸克小工具和夸克網(wǎng)盤(附正式版下載)
夸克PC版在電腦中使用的瀏覽器工具,據(jù)悉該軟件已經(jīng)開啟內(nèi)側(cè),主打夸克小工具和夸克網(wǎng)盤,本站提供該軟件內(nèi)側(cè)地址2023-12-20- 近日,部分網(wǎng)民在網(wǎng)絡(luò)平臺發(fā)布光腳踩葡萄干的視頻,視頻上標(biāo)有“新疆和田11月21日”的字樣,經(jīng)新疆和田地區(qū)市場監(jiān)督管理局核實,和田地區(qū)暫無綠葡萄干晾曬場地和視頻中所顯2023-11-26
- 近期,支原體肺炎廣受社會關(guān)注,針對“感染肺炎支原體一定會得肺炎嗎”“會出現(xiàn)‘白肺’嗎”這些熱點問題,詳細(xì)請看下文介紹2023-11-25
- 近日,社會上流傳一份加蓋中國疾控中心公章的《中國疾病預(yù)防控制中心關(guān)于印發(fā)一型糖尿病疫苗即將上市以及管理辦法的通知》,是真是假2023-11-28
- 近日,一張落款為中國移動通信集團(tuán)廣東有限公司的“套餐升級公告”截圖在網(wǎng)上流傳,稱中國移動將下架4G套餐,詳細(xì)情況請看下文介紹2023-11-24
- 近日,網(wǎng)上流傳“30歲小伙為28萬彩禮加班活活累死”“為掙28萬彩禮娶媳婦,上海外賣小哥活活累死”等多篇自媒體文章,還配有當(dāng)事人在醫(yī)院治療的畫面,詳細(xì)請看下文介紹2023-11-23
- 近期,網(wǎng)絡(luò)上陸續(xù)出現(xiàn)關(guān)于“山東青島莘縣路小港立交橋上有轎車墜下砸中一名路人” “濟(jì)南電動車從高架橋上掉下砸死送貨快遞小哥” 以及“黑龍江牡丹江市過路人被冰溜子砸死2023-11-30