-
1 # IT人劉俊明
-
2 # 量潮科技張果
首先要說明的前提是,人工智慧的底層演算法通常還是C/C++,其他語言封裝了其介面方便呼叫,所以看起來好像是其他語言。
Python相比於Java、C++相比,有一些優勢讓其在人工智慧時代斬頭露角:
2. 豐富的標準庫和第三方庫。Python的標準庫提供了一系列可以方便資料處理的庫,開發者們又寫了很多可以方便資料處理、資料分析和各種計算的庫,讓Python的開發生態十分友好。比如說,處理字串的標準庫string、re等,做爬蟲、處理網路資料的request、bs4等,科學計算和資料分析領域的numpy、scipy、statsmodels、sklearn、pandas、sympy等。
3. 膠水語言特性。Python可以透過各種原生支援和第三方庫呼叫其他語言,這樣可以充分結合許多語言的特性,可以大大提高開發效率和效能優勢。在涉及大量計算的模組,可以使用C/C++等語言,其他模組使用Python豐富的標準庫和第三方庫即可。當然這對於開發者的開發能力要求比較高,要對許多語言熟悉。
4. Google、Facebook等大公司的支援。他們一直以來就有用Python的傳統,比如Google搜尋引擎的早期版本就是Python寫的。很早開始進行人工智慧領域開發的大公司們開源了很多人工智慧的第三方庫以方便開發者使用。比如,Google開源的深度學習框架TensorFlow等。
-
3 # LoveBugs
正好Python,Java,C++的專案我都做過,說說我的體會吧。
Java和C++都是我在工作中常常用到的,也是目前大型專案最常用的開發語言。沒接觸Python之前,有複雜的演算法用Java寫的更多一些。後來我業餘時間開始做量化交易,大部分量化平臺首選都是用的Python語言,於是就開始學Python,確是十分好用,現在已經寫出了不少量化策略。
我認為Python的優勢主要有以下幾點:
易上手這也是Python流行的最主要原因,由於Python的簡潔設計,只要有點程式設計基礎的話,學習Python非常簡單,低門檻自然容易讓比較多的人接受。
程式碼簡潔本來用Java寫量化模擬,但後來用Python寫了一對比,確實方便不少,特別是一些演算法模擬的實驗,如果用Java也能寫,但就顯得笨重。因為這些模擬實驗往往是一些小的程式碼片段,Java或者C++是無法簡潔的執行這麼輕量的流程的。
輕量級還是對於人工智慧的研究實驗,Python是一款輕量級的指令碼語言,處理程式碼片段效率非常高,因此對執行環境的要求也不高,甚至很多網站都提供了線上的Python研究功能。這是Java和C++所不具備的。
科學計算人工智慧自然少不了大量的科學計算,Python裡的各種科學計算庫,數學庫恰恰非常好用,不光效率高,而且好入門,讓數學不好的人也能輕鬆使用。
最後說下,我覺得人工智慧是綜合技術的體現,不能說哪門語言就一定是首選了,比如TensorFlow是用了好幾種程式語言的集合,用的最多的語言其實是C++,Python用量佔第二位,根據不同的需求活用各種語言才是最佳解決方案。
-
4 # 東水雨
Python優勢是易學,是一種輕量型指令碼解釋型動態語言,無指標,無須擔心記憶體洩露等問題,最重要的是具有豐富的演算法庫。而Java等語言目標是支援多種場景使用,可以用於多種大型專案,是重量級靜態語言,一般非常適合一些複雜的大型非計算型程式。因為人工智慧對演算法要求高,而Python支援的又好,又好用,所以就選他了啊。實際從Python執行原理上分析,它的執行速度並不快,但是它的優勢掩蓋了這些缺點啊!
相關內容
- 未來想往能源網際網路、人工智慧等方面發展,學程式設計的話是python還是java合適呢?
- 怎樣測算我用Python寫的人工智慧演算法效能?
- 男26本科機械,想去培訓機構學軟體轉行,學java、前段還是Python好呢?
- 那些從培訓機構走出來的PHP、python、JAVA工程師們現在都在做什麼?
- 25歲了,Linux運維想轉開發來得及嗎?Java還是Python?
- 27歲的人學JAVA和Python還來得及嗎?
- 我是學java的,想學一點python資料處理,大家有沒有好一點的推薦!需要什麼?
- 做商品交易平臺,PHP、JAVA、Python哪個語言更合適?
- java哥python哪個好找工作?
- 如果學大資料,最好學習哪種程式語言?是Java還是Python或者c++?
最近幾年伴隨著大資料的發展,人工智慧也迎來了前所未有的發展契機,大量的專業人才湧向了人工智慧領域,相信未來人工智慧領域會進一步贏得市場的追捧。
首先要說明的是人工智慧方面的研發是可以使用Java的,我在早期做機器學習方面的實驗使用的就是Java語言,當然C++也是可以的。為什麼現在大部分研發人員都使用Python做人工智慧方面的實驗,一個很重要的原因就是用Python做實驗開發週期短。
做一個簡單的類比,我最初一段時間使用Java做演算法實現,很多內容是需要自己完成的,如果使用Java來實現樸素貝葉斯演算法(演算法本身的基本實現)大概需要100行左右的程式碼,換做Python來實現同樣的功能我只使用了40行程式碼,差距十分明顯。
其次,還有一點比較關鍵,就是Python非常簡單。使用過Java的程式設計師通常都有這樣的感覺,Java是一個“儀式感”很強的語言,比如你使用Java只寫了3個類和一個介面,此時你卻可能需要打4個包,而這在Java程式設計師看來是理所當然的。Python在這一點上做的比較徹底,幾乎透過程式碼縮排而取消了所有的儀式感,簡單實用且不失優雅,所以使用Python比較容易。
另外,Python中定義了一系列庫,比如Numpy、Matplotlib、Scipy等,這些庫對人工智慧開發起到了很大的幫助,使得使用Python開發更像是使用積木,只要把這些模組按照演算法流程搭建起來就可以了,很多東西不用自己去構建,這當然節省了大量的開發時間。
最後,雖然大部分實驗都使用Python開發,但是很多最終產品通常要使用其他語言來進行重寫,因為Python太慢了。但是也要具體問題具體分析,我做過一個智慧診療的機器學習系統,驗證階段和最終使用都採用了Python開發,因為效率能滿足實際需要,使用雲端部署能提供強大的計算能力從而保證了專案的執行效率。
總之,使用Python做人工智慧方面的研發確實很方便,我目前也一直在使用Python,如果大家有這方面的問題,可以跟我交流。