Python才是人工智慧AI的首選程式語言,你值得擁有……

vibe發表於2018-08-23

在所有程式語言裡,Python並不算萌新,從1991年釋出第一個版本,至今已經快30年了。

最近幾年,隨著人工智慧概念的火爆,Python迅速升溫,成為眾多AI從業者的首選語言。

根據資料平臺 Kaggle釋出的2017年機器學習及資料科學調查報告,在工具語言使用方面,Python是資料科學家和人工智慧從業者使用最多的語言(見下圖)。
這裡寫圖片描述

IEEE綜覽(IEEE Spectrum)釋出的2017最受歡迎程式語言列表中,Python同樣位列第一(見下圖)。
這裡寫圖片描述

為什麼?

原因1:Python是一種說人話的語言

所謂“說人話”,是指這種語言:

開發者不需要關注底層

語法簡單直觀

表達形式一致

我們先來看幾個程式碼的例子:

C 語言Hello World 程式碼:

int main(){printf(”Hello, World!”); return 0;}

Java 語言Hello World 程式碼:

public class HelloWorld { public static void main(String[] args){System.out.println(”Hello World!”);}}

Python 語言Hello World程式碼:

print(”Hello World!”)

僅僅是一個Hello World程式,就能看出區別了,是不是?

編譯 VS 解釋

當然,僅僅是一個Hello World的話,C和Java的程式碼也多不了幾行。

可是不要忘了,C和Java的程式碼要執行,都必須先經過編譯的環節。

對於C語言來說,在不同的作業系統上使用什麼樣的編譯器,也是一個需要斟酌的問題。一旦程式碼被copy到新的機器,執行環境和之前不同,還需要重新編譯,而那臺機器上有沒有編譯器還是一個問題,安裝上編譯器後,也許和之前最初的編譯器有所區別,還得修改原始碼來滿足編譯環境的需求……

我到底做錯了什麼?我只是想執行一個別人寫的程式而已[淚目]

而Python則不用編譯,直接執行。而且都可以不用寫檔案,一條條語句可以直接作為命令列執行。不要太方便咯。

語言語法

和Python比,Java的語法更“囉嗦”。

從上面的例子已經可以看出,建立一個連結串列,Java還需要宣告和逐個插入節點,而Python則可一行程式碼完成從連結串列建立到插入節點及賦值的全部操作。

這還只是一個例子。在真正的使用中就會發現,對於很多非常簡單基礎的操作,Java非讓你很彆扭地寫好幾行,Python直接一句搞定。

這樣的結果就是,Python寫起來省事,讀起來也方便。可讀性遠超Java。

表達風格

在10年或者更久遠之前,Python經常被用來和Perl相提並論。畢竟在那個時候,C是系統級語言,Java是面嚮物件語言,而Python & Perl則是指令碼語言的雙子星。

原因2:強大的AI支援庫

矩陣運算

NumPy由資料科學家Travis Oliphant創作,支援維度陣列與矩陣運算。結合Python內建的math和random庫,堪稱AI資料神器!有了它們,就可以放心大膽玩矩陣了!

大家知道,不管是Machine Learning,還是Deep Learning,模型、演算法、網路結構都可以用現成的,但資料是要自己負責I/O並傳遞給演算法的。

而各種演算法,實際上處理的都是矩陣和向量。

使用NumPy,矩陣的轉置、求逆、求和、叉乘、點乘……都可以輕鬆地用一行程式碼搞定,行、列可以輕易抽取,矩陣分解也不過是幾行程式碼的問題。

而且,NumPy在實現層對矩陣運算做了大量的並行化處理,通過數學運算的精巧,而不是讓使用者自己寫多執行緒程式,來提升程式效率。

有了Python這種:語法簡潔明瞭、風格統一;不需要關注底層實現;連矩陣元素都可以像在紙上寫公式一樣;寫完公式還能自動計算出結果的程式語言,開發者就可以把工作重心放在模型和演算法上了。

ML模型

用Python實現大多數經典模型,幾十上百行程式碼就夠了。

當然,對於普通使用者,也可以連演算法都不用管,只是呼叫Scikit-Learn的介面就可以了。

比如,訓練和使用一個logistic Regression模型,只需要下面幾行程式碼就可以了:

import the LogisticRegression from sklearn.linear_model import LogisticRegression# Use default parametersclassifier = LogisticRegression()# train modelclassifier.fit(train_set, target)# do testy_hat = classifier.predict(test_set)# print out test resultsprint y_hat

原因3:規模效應

語言簡單易學,支援庫豐富強大,這兩大支柱從早期就奠定了Python的江湖地位。

根據以高收入國家Stack Overflow問題閱讀量為基礎的主要程式語言趨勢統計,可以看出,近年來,Python已然力壓Java和Javascript,成為目前已開發國家增長最快的程式語言(見下圖)。
這裡寫圖片描述

由圖可見,2012年之後,對於Python相關問題的瀏覽量迅速增長,從時間上看,這一趨勢正好和近幾年人工智慧的發展重合。

技術的普及推廣就像滾雪球,早期的積累相對緩慢,一旦過了臨界點,就是大爆發。

別的不說,就說現在tensorflow,caffe之類的深度學習框架,主體都是用Python來實現,提供的原生介面也是Python。

如今,Python在AI領域的老大地位已經奠定。

如何才能學習,緊跟科技潮流呢?往下看…………

關於怎麼快速學Python,有什麼方法,這個問題,想必大家都已經心中有數了,打算深入瞭解這個行業的朋友,可以加下小編的Python學習群:862672474,不管你是小白還是大牛,小編我都歡迎,不定期分享乾貨,包括小編自己整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。
這裡寫圖片描述

每天晚上20:00都會開直播給大家分享Python學習知識和路線方法,群裡會不定期更新最新的教程和學習方法(進群送2018Python學習教程),大家都是學習Python的,或是轉行,或是大學生,還有工作中想提升自己能力的Python黨,如果你是正在學習Python的小夥伴可以加入學習。最後祝所有程式設計師都能夠走上人生巔峰,讓程式碼將夢想照進現實,非常適合新手學習,有不懂的問題可以隨時問我,工作不忙的時候希望可以給大家解惑。


相關文章