原文來自Python實用寶典:為什麼Python這麼適合AI和機器學習?4位專家給你答案
Python是機器學習的最佳程式語言之一,其迅速地在學術界和相關研究領域威脅到甚至超過了R的主導地位。為什麼Python在機器學習領域如此受歡迎呢?為什麼Python對AI有好處?
Mike Driscoll採訪了4位Python專家和機器學習社群人士,討論了Python在AI和相關研究領域中如此受歡迎的原因。
程式設計是一種社會活動——Python的社群已經透徹認識到了這一點
Glyph Lefkowitz (@glyph是Python網路程式設計框架Twisted(一個能用於Python非同步發的庫)的創始人,他在2017年獲得了PSF的社群服務獎。他是這麼認為的:
人工智慧是一個包羅永珍的術語,它傾向於指當前電腦科學研究中最先進的領域。
曾經有一段時間,我們理所當然的以為基本圖形遍歷被認為是AI。在那個時候,Lisp是一種大型人工智慧語言,因為它比一般的程式語言要高階,而且研究人員可以更容易地用Lisp做快速原型。我認為Python在總體上已經很大程度上取代了它,因為除了具有類似的高階功能外,它還有一個優秀的第三方庫生態系統。
Lispers會反對,所以我應該說清楚,我並不是要捧高Python的地位,只是說Python和Lisp都是同一類語言,比如在垃圾回收、記憶體安全等機制、名稱空間和高階資料結構等方面都具有相似的特點。
從機器學習的更具體的意義上說,也就是現在越來越多的人所說的人工智慧,我認為有更具體的答案。NumPy的存在及其伴隨的生態系統允許非常適合研究的高階內容的混合,以及非常高效能的數字處理。如果不是非常密集的數字運算,機器學習就什麼都不是。
“……統計學家、天文學家、生物學家和業務分析師都已經成為Python程式設計師,並改進了這個語言。”
Python社群致力於為非程式設計師提供友好的介紹和生態系統支援,這確實增加了它在資料科學和科學計算的姊妹學科中的應用。無數的統計學家、天文學家、生物學家和業務分析師已經成為Python程式設計師,並改進了這個語言。程式設計本質上是一種社會活動,Python社群比除JavaScript之外的任何語言都更認可這一點。
Python讓使用者關注真正的問題
Marc-Andre Lemburg (@malemburg),PSF的聯合創始人和eGenix的執行長。他是這樣認為的:
Python對於沒有受過電腦科學訓練的人來說非常容易理解。當您試圖執行研究所需的外部庫時,它消除了您必須處理的許多複雜性。
在Numeric(現在是NumPy)開始開發之後,新增了IPython筆記本(現在是Jupyter筆記本)、matplotlib和許多其他工具,使事情變得更加直觀,Python允許使用者主要考慮問題的解決方案,而不是驅動這些解決方案所需的技術。
“Python是一種理想的整合語言,可以輕鬆地將技術繫結在一起。”
Python是一種理想的整合語言,可以輕鬆地將技術繫結在一起。Python允許使用者關注真正的問題,而不是將時間花在實現細節上。除了讓使用者更容易操作之外,對於開發外部庫的底層整合人員來說,Python還是一個理想的粘合平臺。這主要是因為Python非常容易通過一個漂亮而完整的C語言API訪問。
Python有許多適合科學計算的特性
Luciano Ramalho (@ramalhoorg), ThoughtWorks技術負責人,PSF研究員。他是這麼看的:
最重要和最直接的原因是NumPy和SciPy庫支援像scikit-learn這樣的專案,scikit-learn目前幾乎是機器學習的標準工具。
首先建立NumPy、SciPy、scikit-learn和許多其他庫的原因是Python具有一些特性,使其對科學計算非常方便。Python有一個簡單且一致的語法,這使得非軟體工程師更容易進行程式設計。
“Python得益於科學計算庫的豐富生態系統。”
另一個原因是運算子過載,這使得程式碼可讀且簡潔。然後是Python的buffer protocol (PEP 3118),它是外部庫在處理類似陣列的資料結構時與Python有效互操作的標準。最後,Python得益於科學計算庫的豐富生態系統,這吸引了更多的科學家與開發者,並創造了一個良性迴圈。
Python嚴格一致的特點使其對AI非常友好
Mike Bayer (@zzzeek), Red Hat高階軟體工程師,SQLAlchemy的建立者。他是這麼認為的:
我們在這個領域所做的是開發我們的數學模型和演算法。我們正在把我們肯定想要保留的和優化的演算法放入像scikit-learn這樣的庫中。然後,我們將繼續迭代並共享關於如何組織和考慮資料的註釋。
高階指令碼語言是人工智慧和機器學習的理想語言,因為我們可以快速轉移資料,然後再試一次。我們建立的程式碼的大部分用於表示實際的數學和資料結構。
像Python這樣的指令碼語言甚至更好,因為它是嚴格和一致的。每個人都可以更好地理解彼此的Python程式碼,而不是使用其他具有混亂和不一致程式設計範例的語言。
Python重視我們正在努力做的工作的核心,並且完全最小化了我們如何給計算機下達指令等其他事情,這是應該的,自動化所有你不應該考慮的事情,讓你更好地為了達到目標寫程式碼。
我們的文章到此就結束啦,如果你希望我們今天的Python 教程,請持續關注我們,如果對你有幫助,麻煩在下面點一個贊/在看哦有任何問題都可以在下方留言區留言,我們都會耐心解答的!
Python實用寶典 (pythondict.com)
不只是一個寶典
歡迎關注公眾號:Python實用寶典
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Python實用寶典, pythondict.com