0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python如何奠定AI領(lǐng)域的老大地位

OaXG_jingzhengl ? 來源:未知 ? 作者:胡薇 ? 2018-05-20 11:43 ? 次閱讀

在所有編程語言里,Python并不算萌新,從1991年發(fā)布第一個版本,至今已經(jīng)快30年了。

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

根據(jù)數(shù)據(jù)平臺 Kaggle發(fā)布的2017年機器學(xué)習(xí)及數(shù)據(jù)科學(xué)調(diào)查報告,在工具語言使用方面,Python是數(shù)據(jù)科學(xué)家和人工智能從業(yè)者使用最多的語言(見下圖)。

IEEE綜覽(IEEE Spectrum)發(fā)布的2017最受歡迎編程語言列表中,Python同樣位列第一(見下圖)。

為什么?

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

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

開發(fā)者不需要關(guān)注底層

語法簡單直觀

表達形式一致

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

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 解釋

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

可是不要忘了,C和Java的代碼要運行,都必須先經(jīng)過編譯的環(huán)節(jié)。

對于C語言來說,在不同的操作系統(tǒng)上使用什么樣的編譯器,也是一個需要斟酌的問題。一旦代碼被copy到新的機器,運行環(huán)境和之前不同,還需要重新編譯,而那臺機器上有沒有編譯器還是一個問題,安裝上編譯器后,也許和之前最初的編譯器有所區(qū)別,還得修改源代碼來滿足編譯環(huán)境的需求……

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

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

語言語法

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

從上面的例子已經(jīng)可以看出,創(chuàng)建一個鏈表,Java還需要聲明和逐個插入節(jié)點,而Python則可一行代碼完成從鏈表創(chuàng)建到插入節(jié)點及賦值的全部操作。

這還只是一個例子。在真正的使用中就會發(fā)現(xiàn),對于很多非常簡單基礎(chǔ)的操作,Java非讓你很別扭地寫好幾行,Python直接一句搞定。

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

表達風(fēng)格

在10年或者更久遠之前,Python經(jīng)常被用來和Perl相提并論。畢竟在那個時候,C是系統(tǒng)級語言,Java是面向?qū)ο笳Z言,而Python & Perl則是腳本語言的雙子星。

Python和Perl在設(shè)計層面有一個非常大的區(qū)別:

Python力求讓不同的人在撰寫同樣功能實現(xiàn)的代碼時,所用的表達形式盡量一致;

而Perl則是故意追求表達的千姿百態(tài),讓同一個人在不同地方寫同樣功能時所用具體形式都不同。

從哲學(xué)層面講,Perl的追求更加自由主義,更利于釋放人類的多樣化天性。也確實有很多Geek范兒程序員因為這一點推崇毫無限制的Perl,鄙視到處設(shè)限的Python。

然而,Perl寫的程序——那叫一個亂七八糟!

當你想遇到問題,想在網(wǎng)上找點實例代碼看看的時候,搜到的Perl example千姿百態(tài),很難找到一種“大眾”的解法。而不同寫法之間,還很難保證相容。

這個問題其實在Python vs Java上也有,只不過程度要低得多。

Java語言本身并沒有想要把自己變成書寫代碼詩歌的載體。但是因為它長年大量地被應(yīng)用在企業(yè)級軟件的后臺開發(fā),夾雜進了太多并非語言本身卻又與其使用不可分割的東西,進一步加劇了Java的繁雜。

如果不是想成為代碼詩人,或者語言大師,只是想用盡量簡單直接的方法,把事情做了,首選語言確實是Python。

原因2:強大的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ù)是要自己負責(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)典模型,幾十上百行代碼就夠了。

當然,對于普通用戶,也可以連算法都不用管,只是調(diào)用Scikit-Learn的接口就可以了。

比如,訓(xùn)練和使用一個logistic Regression模型,只需要下面幾行代碼就可以了:

#import the LogisticRegression from sklearn.linear_model import LogisticRegression #Use default parametersclassifier = LogisticRegression() #train modelclassifier.fit(train_set, target) #dotesty_hat = classifier.predict(test_set) #printouttestresultsprint y_hat

支持圖表

Python還有許多圖標方面的支持庫。用來生成dashboard上的各種圖形表格,是非常簡單的事情。

比如使用Plotly圖形庫,下面這些炫彩的圖形,就隨便用啦:

原因3:規(guī)模效應(yīng)

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

根據(jù)以高收入國家Stack Overflow問題閱讀量為基礎(chǔ)的主要編程語言趨勢統(tǒng)計,可以看出,近年來,Python已然力壓Java和Javascript,成為目前發(fā)達國家增長最快的編程語言(見下圖)。

由圖可見,2012年之后,對于Python相關(guān)問題的瀏覽量迅速增長,從時間上看,這一趨勢正好和近幾年人工智能的發(fā)展重合。

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

別的不說,就說現(xiàn)在tensorflow,caffe之類的深度學(xué)習(xí)框架,主體都是用Python來實現(xiàn),提供的原生接口也是Python。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29435

    瀏覽量

    267737
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1922

    瀏覽量

    34510
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4759

    瀏覽量

    84297

原文標題:為什么Python是入行人工智能的首選語言?

文章出處:【微信號:jingzhenglizixun,微信公眾號:機器人博覽】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    國產(chǎn)AI出海加速,IT領(lǐng)域投資激增

    隨著AI技術(shù)的飛速發(fā)展,國產(chǎn)AI應(yīng)用正加速走向世界舞臺。據(jù)統(tǒng)計,目前已有超過百款國產(chǎn)AI應(yīng)用成功出海,展現(xiàn)出強大的國際競爭力。同時,AI技術(shù)的廣泛應(yīng)用也極
    的頭像 發(fā)表于 09-25 14:26 ?255次閱讀

    微軟與阿聯(lián)酋G42合作,力推阿聯(lián)酋AI全球領(lǐng)導(dǎo)地位

    微軟公司與阿聯(lián)酋領(lǐng)先的人工智能企業(yè)G42宣布了一項重要合作,計劃在阿布扎比建立兩個核心中心,專注于推動“負責(zé)任的人工智能”(Responsible AI)計劃。此舉標志著阿聯(lián)酋在加速其從石油經(jīng)濟向多元化、高科技經(jīng)濟轉(zhuǎn)型的過程中,又邁出了堅實的一步,旨在鞏固其在全球AI
    的頭像 發(fā)表于 09-19 17:30 ?759次閱讀

    SK海力士下半年擴招加碼,鞏固AI半導(dǎo)體技術(shù)領(lǐng)軍地位

    全球半導(dǎo)體巨頭SK海力士近日宣布了一項重大人才招募計劃,旨在通過下半年的大規(guī)模新員工及資深行業(yè)人才招聘活動,進一步強化其在高帶寬存儲器(HBM)領(lǐng)域的領(lǐng)導(dǎo)地位,并積極擁抱人工智能(AI)半導(dǎo)體市場的迅猛增長浪潮。
    的頭像 發(fā)表于 09-03 16:08 ?689次閱讀

    韓國AI芯片巨頭合并,劍指英偉達龍頭地位

    的合資公司創(chuàng)造超過1萬億韓元的業(yè)務(wù)價值,標志著韓國在AI芯片領(lǐng)域的雄心壯志,旨在挑戰(zhàn)全球領(lǐng)導(dǎo)者英偉達(NVIDIA)的霸主地位。
    的頭像 發(fā)表于 08-21 16:29 ?553次閱讀

    pytorch和python的關(guān)系是什么

    在當今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學(xué)易用、豐富的庫和框架以及強大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語言。而
    的頭像 發(fā)表于 08-01 15:27 ?1238次閱讀

    PythonAI中的應(yīng)用實例

    Python在人工智能(AI領(lǐng)域的應(yīng)用極為廣泛且深入,從基礎(chǔ)的數(shù)據(jù)處理、模型訓(xùn)練到高級的應(yīng)用部署,Python都扮演著至關(guān)重要的角色。以下將詳細探討
    的頭像 發(fā)表于 07-19 17:16 ?782次閱讀

    如何在Python中開發(fā)人工智能

    Python中開發(fā)人工智能(AI)是一個廣泛而深入的主題,它涵蓋了從基礎(chǔ)的數(shù)據(jù)處理到復(fù)雜的機器學(xué)習(xí)、深度學(xué)習(xí)以及自然語言處理等多個領(lǐng)域。
    的頭像 發(fā)表于 07-15 15:01 ?1498次閱讀

    Python中的人工智能框架與實例

    在人工智能(AI領(lǐng)域Python因其簡潔的語法、豐富的庫和強大的社區(qū)支持,成為了最受歡迎的編程語言之一。本文將詳細介紹Python中的人工智能框架,并通過具體實例展示如何使用這些框
    的頭像 發(fā)表于 07-15 14:54 ?1223次閱讀

    Python在人工智能領(lǐng)域的應(yīng)用

    在當今這個科技日新月異的時代,人工智能(AI)已經(jīng)滲透到我們生活的方方面面,從智能家居到自動駕駛,從智能醫(yī)療到金融風(fēng)控,無一不體現(xiàn)著AI的力量。而在這一場技術(shù)革命中,Python作為一種簡潔、高效且
    的頭像 發(fā)表于 07-02 18:20 ?933次閱讀

    廣和通端側(cè)AI解決方案榮膺MWCS 2024邊緣AI計算最佳創(chuàng)新獎

    在近日舉行的2024世界移動通信大會·上海(MWCS 2024)上,廣和通憑借其卓越的端側(cè)AI解決方案榮獲2024信息通信業(yè)“新質(zhì)推薦”——邊緣AI計算最佳創(chuàng)新方案獎。這一榮譽不僅彰顯了廣和通在AI技術(shù)、產(chǎn)品及應(yīng)用
    的頭像 發(fā)表于 06-28 15:44 ?650次閱讀

    為什么Cubeai導(dǎo)入模型的時候報錯[AI:persondetection] ModuleNotFoundError: No module named \'_socket\'?

    在使用CubeIde導(dǎo)入ai模型進行模型分析的時候報錯[AI:persondetection] ModuleNotFoundError: No module named \'_socket\',但是安裝的python里面有這個模
    發(fā)表于 05-21 06:44

    SK海力士HBM3E正式量產(chǎn),鞏固AI存儲領(lǐng)域的領(lǐng)先地位

    SK海力士作為HBM3E的首發(fā)玩家,預(yù)計這款最新產(chǎn)品的大批量投產(chǎn)及其作為業(yè)內(nèi)首家供應(yīng)HBM3制造商所累積的經(jīng)驗,將進一步強化公司在AI存儲器市場的領(lǐng)導(dǎo)者地位。
    的頭像 發(fā)表于 03-19 15:18 ?903次閱讀

    python運行環(huán)境的安裝和配置

    Python是一種非常流行的編程語言,廣泛應(yīng)用于科學(xué)計算、Web開發(fā)、人工智能等領(lǐng)域。為了能夠正常運行Python程序,我們需要先安裝和配置Python運行環(huán)境。本文將為您詳盡介紹
    的頭像 發(fā)表于 11-29 16:17 ?1042次閱讀

    python軟件對電腦配置要求

    Python是一種流行的編程語言,它在許多不同的領(lǐng)域中被廣泛使用,例如網(wǎng)站開發(fā)、數(shù)據(jù)科學(xué)和機器學(xué)習(xí)等。對于使用Python的開發(fā)者來說,了解Python軟件的電腦配置要求是非常重要的。
    的頭像 發(fā)表于 11-29 14:58 ?9430次閱讀

    查看python安裝路徑的方法

    Python是一種高級編程語言,常用于開發(fā)Web應(yīng)用、數(shù)據(jù)分析、人工智能等領(lǐng)域。在使用Python進行開發(fā)之前,我們需要先安裝Python解釋器,并了解
    的頭像 發(fā)表于 11-29 14:54 ?1.1w次閱讀