有人說Julia比Python好,還給出了5個理由

2021-10-04 07:23:41 字數 2184 閱讀 5997

julia 是一種多正規化的函式式程式語言,用於機器學習和統計程式設計。儘管 python 通常被認為是一種物件導向的程式語言,其實它也是用於機器學習的多正規化程式語言。需要注意的是,julia 語言更多地基於函式正規化。此外,julia 語言雖不如 python 那麼流行,但在資料科學中使用 julia 具有很大的優勢,從而使它在很多情況下成為更好的程式語言選擇。

下文將從五個方面介紹 julia 的優勢所在。

速度

首先是速度,這是 julia 語言引以為傲的乙個重要方面。與 python 需要直譯器來執行**不同,julia 主要是依託自身實現編譯。另一方面,與 c 語言等其他編譯語言也不同的是,julia 在執行時進行編譯,而傳統語言則是在執行前進行編譯。如果 julia 語言編寫地非常好,它的速度與 c 語言相當、有時甚至可以超過 c 語言。julia 語言使用即時編譯器 just in time(jit)compiler,它的編譯速度非常快,儘管它編譯時更像是一種解釋型語言而非 c 或 fortran 等傳統低階編譯語言。

通用性

我們都知道通用性是 python 語言相較於 julia 語言的乙個優勢,確實有很多通過 python 語言編寫的專案無法使用 julia 來實現。當然以上僅針對程式語言本身而言,我們這裡提到的通用性是指能夠與其他語言混合程式設計。julia **普遍能夠在 r、latex、python 和 c 等語言中直接執行。這意味著典型的資料科學專案具有一旦被編寫完成並在 julia 本地進行編譯後,在其他程式語言中作為封裝類或僅傳遞字串使用的潛力。

pycall 和 rcall 也是 julia 語言的兩大優勢。考慮到 julia 語言一大缺點在於包的豐富程度不及 python 或 r 語言,利用 pycall 和 rcall 在 julia **中隨時呼叫 python 和 r 為使用者提供了極大的便利。pycall 在 julia 語言中得到了很好地實現,並且也非常有用。

多重派發

julia 是一種非常獨特的型別化語言,具有自己的執行模式和特徵,但其中乙個非常酷的特徵是它的多重派發。首先,julia 的多重派發速度非常快。除此之外,使用 julia 的多型派發能夠將函式定義應用為結構屬性。這使得繼承(inheritance)在 julia 內部可行。不僅如此,使用 julia 的多重派發還可以實現函式的擴充套件,這對於包擴充套件來說好處多多,因為無論什麼時候顯式地匯入 method,使用者都可以對它進行更改。因此,使用者可以很容易地顯式匯入自己的 method,並選擇相應結構將它擴充套件為乙個新的函式。

適用於 ml 的程度

與 python 不同,julia 語言的目的是應用於統計學和機器學習領域。python 語言則建立於 20 世紀 90 年代早期,是一種物件導向的語言,並且自此之後也改變了很多。儘管 python 具有很長的發展歷史以及廣泛的應用範圍,但使用一種專門建立用於高階統計工作的語言能夠帶來很大的好處。

包管理器

julia 的 pkg 包管理器秒殺 python 的 pip 包管理器。pkg 自帶 repl 和 julia 包,你可以從中構建、新增、移除、例項化包。因為 pkg 和 git 是繫結的使得以上操作尤其便利。更新、新增包都非常容易。總之,比起 python 的 pip,pkg 的使用體驗在任何時候都要愉悅得多。

總結

r 也好,julia 也好,python 也好,你用什麼語言其實沒那麼重要。重要的是,你要知道每種語言都有它的劣勢,沒有哪種語言是無可挑剔的。特別是當你的程式用途廣泛時尤為明顯(從機器學習到 gui 到 api)。綜上所述,julia 和 python 一樣是我很喜歡的語言之一。python 有更好的包,如果專案足夠小,我就會用 python。但是對於擁有數百萬個觀察結果的資料集,用 python 讀取資料都會變成一件難事。

總之,我對 julia 的未來滿懷期待。julia 寫起來很有趣,而且在未來的資料科學領域可能會變得更加實用。

有人說Julia比Python好,還給出了5個理由

julia 是一種多正規化的函式式程式語言,用於機器學習和統計程式設計。儘管 python 通常被認為是一種物件導向的程式語言,其實它也是用於機器學習的多正規化程式語言。需要注意的是,julia 語言更多地基於函式正規化。此外,julia 語言雖不如 python 那麼流行,但在資料科學中使用 ju...

有人說要節能,有人說要耗能

問題有邊界但溝通時並不會隨時描述邊界並且由於描不准原理導致問題邊界是界定不了的 有人說要節能,有人說要耗能,這完全相反的觀點到底是為什麼?抽象的說,原因有兩點 1是因為兩個人在同乙個問題空間看問題的角度可能不同 2是因為問題有邊界,這看起來是同乙個的問題其實可能是兩個問題,因為這兩個人可能是在不同的...

為什麼有人說 Python 多執行緒是雞肋?

為什麼有人會說 python 多執行緒是雞肋?知乎上有人提出這樣乙個問題,在我們常識中,多程序 多執行緒都是通過併發的方式充分利用硬體資源提高程式的執行效率,怎麼在 python 中反而成了雞肋?有同學可能知道答案,因為 python 中臭名昭著的 gil,gil 是什麼?為什麼會有 gil?多線 ...