為什麼說 Julia 更優於 Python?

兩大機器學習和統計編程中的常用語言 Julia 和 Python,究竟有何不同?

为什么说 Julia 更优于 Python?

作者 | Emmett Boudreau

出品 | CSDN(ID:CSDNnews)

Julia 是一種多範式、以函數式為主的編程語言,主要用於機器學習和統計編程。Python 是另一種用於機器學習的多範式編程語言,儘管人們通常認為 Python 是面向對象的編程語言。而 Julia 則主要是函數式。儘管 Julia 遠不如 Python 流行,但在數據科學中使用 Julia 有很多優勢,在許多情況下 Julia 甚至是比 Python 更好的選擇。

为什么说 Julia 更优于 Python?

速度

为什么说 Julia 更优于 Python?

提起 Julia 就不得不談論速度。Julia 最自豪的地方就是速度快。與解釋型語言 Python 不同,Julia 是一種用自己的方式實現的編譯語言。然而,與其他編譯語言(如C)不同,Julia 是在運行時進行編譯的,而傳統語言則是在執行之前進行編譯的。Julia 的速度有時甚至可能超越C(如果編寫適當的話)。Julia 使用即時編譯器(JIT),編譯速度非常快,儘管它的編譯更像一種解釋型語言,而非 C 或 Fortran 等傳統的低級編譯語言。

为什么说 Julia 更优于 Python?

多用途

你可能已經注意到,我說過就多用途而言,Python 比 Julia 更佔優勢。這是事實,很多 Python 可以做到的事情,而 Julia 卻做不到。當然,這只是就語言本身而言的,因為我們現在討論的多樣性是語言的多功能性。而實際上,Julia 代碼可以在 R、Latex、Python和C中執行。這意味著一般的數據科學項目理論上都可以僅編寫一次,然後通過Julia,在其他語言的 wrapper 中原生地進行編譯,或者也可以通過發送字符串的形式來編譯。

PyCall 和 RCall 也非常有用。考慮到 Julia 的弱點就在於其軟件包,因此能夠隨時隨地調用 Python 和 R 真的很方便。Julia中很好地實現了 PyCall ,並且做得非常好且非常實用。

为什么说 Julia 更优于 Python?

多重分派

为什么说 Julia 更优于 Python?

Julia是一種非常獨特的有類型語言,有自己的特性,但最棒的特性就是多重分派功能。首先,也是最重要的一點,那就是 Julia 的多重分派非常快。除此之外,Julia 的多態分派還可以將函數定義作為結構體的屬性使用。當然,Julia 中的繼承就是用這個實現的。

不僅如此,Julia 的多重分派還能讓函數更具可擴展性。對於軟件包擴展來說這一點非常有用,因為在需要明確地導入某個方法時,用戶可以改變方法的名稱。因此很容易明確地導入方法並進行擴展,方便構造體使用新的函數。

为什么说 Julia 更优于 Python?

為機器學習量身打造

與 Python 不同,Julia 是為統計學和機器學習量身打造的。Python 誕生於於九十年代前期,是一個簡單的面嚮對象語言,儘管後來發生了許多變化。考慮到 Python 的發展史以及各種各樣的用途,Julia 作為一項專為高層次統計學打造的語言有許多優勢。

我認為其優勢之一就是線性代數。原始的 Python 很難進行線性代數運算,但原始的 Julia 做線性代數非常方便。這是因為 Python 從來沒有考慮過支持機器學習所需的矩陣和方程等。儘管這並不是 Python 的缺點,特別是在有了 NumPy 之後,但從不需要額外軟件包的角度來看,Julia 感覺更適合這類數學運算。Julia 的操作符系統更類似於 R,這也是非常大的優勢。絕大多數線性代數操作都非常快且容易。下面是一個點乘的例子:

<code>Python -> y = np.dot(array1,array2)
R -> y Julia -> y = array1 .* array2
/<code>

包管理器

也許我是第一個這樣說的人:Julia 的 pkg 包管理器遠勝於 Python 的 pip包管理器。你可以利用 pkg 自帶 REPL 構建、添加、刪除和初始化 Julia 包。pkg 非常方便,因為它綁定了 Git。更新也很容易,添加包非常容易,整體而言,Pkg 比 Python pip 更方便。

總結

不論你選擇 R、Julia、Python 還是 Scala,這都不重要。重要的是你需要注意到每種語言都有缺點,並沒有一種“完美的語言”。在進行多種編程活動時這一點尤為明顯,比如你需要做機器學習,也需要做 GUI、API等。儘管如此,Julia 仍然是我最喜歡的語言之一,Python 也是。Python 的軟件包更好,而且如果項目很小,我更傾向於使用 Python,但對於擁有幾百萬觀測點的數據集而言,Python 讀取數據都會有困難。

總體來說,我更看好 Julia 未來的發展趨勢。使用Julia 編程非常愉悅,這門語言很可能在數據科學中有更好的發展前景。

原文:https://towardsdatascience.com

/5-ways-julia-is-better-than-python-334cc66d64ae

本文為 CSDN 翻譯,轉載請註明來源出處。

为什么说 Julia 更优于 Python?

為了助力對抗疫情,減少線下人員流動和聚集,CSDN與 PyCon 官方授權的 PyCon中國社區合作,舉行「Python開發者日」在線系列峰會。通過精彩的技術乾貨內容、有趣多元化的在線互動活動等,讓您足不出戶便可與大咖學習交流,共同渡過抗疫攻堅期。


分享到:


相關文章: