日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
有人說Julia比Python好,還給出了5個(gè)理由

Julia 是一種多范式的函數(shù)式編程語言,用于機(jī)器學(xué)習(xí)和統(tǒng)計(jì)編程。盡管 Python 通常被認(rèn)為是一種面向?qū)ο蟮木幊陶Z言,其實(shí)它也是用于機(jī)器學(xué)習(xí)的多范式編程語言。需要注意的是,Julia 語言更多地基于函數(shù)范式。此外,Julia 語言雖不如 Python 那么流行,但在數(shù)據(jù)科學(xué)中使用 Julia 具有很大的優(yōu)勢,從而使它在很多情況下成為更好的編程語言選擇。

下文將從五個(gè)方面介紹 Julia 的優(yōu)勢所在。

速度

首先是速度,這是 Julia 語言引以為傲的一個(gè)重要方面。與 Python 需要解釋器來執(zhí)行代碼不同,Julia 主要是依托自身實(shí)現(xiàn)編譯。另一方面,與 C 語言等其他編譯語言也不同的是,Julia 在運(yùn)行時(shí)進(jìn)行編譯,而傳統(tǒng)語言則是在執(zhí)行前進(jìn)行編譯。如果 Julia 語言編寫地非常好,它的速度與 C 語言相當(dāng)、有時(shí)甚至可以超過 C 語言。Julia 語言使用即時(shí)編譯器 Just In Time(JIT)compiler,它的編譯速度非常快,盡管它編譯時(shí)更像是一種解釋型語言而非 C 或 Fortran 等傳統(tǒng)低級(jí)編譯語言。

通用性

我們都知道通用性是 Python 語言相較于 Julia 語言的一個(gè)優(yōu)勢,確實(shí)有很多通過 Python 語言編寫的項(xiàng)目無法使用 Julia 來實(shí)現(xiàn)。當(dāng)然以上僅針對(duì)編程語言本身而言,我們這里提到的通用性是指能夠與其他語言混合編程。Julia 代碼普遍能夠在 R、Latex、Python 和 C 等語言中直接運(yùn)行。這意味著典型的數(shù)據(jù)科學(xué)項(xiàng)目具有一旦被編寫完成并在 Julia 本地進(jìn)行編譯后,在其他編程語言中作為封裝類或僅傳遞字符串使用的潛力。

PyCall 和 RCall 也是 Julia 語言的兩大優(yōu)勢??紤]到 Julia 語言一大缺點(diǎn)在于包的豐富程度不及 Python 或 R 語言,利用 PyCall 和 RCall 在 Julia 代碼中隨時(shí)調(diào)用 Python 和 R 為用戶提供了極大的便利。PyCall 在 Julia 語言中得到了很好地實(shí)現(xiàn),并且也非常有用。

多重派發(fā)

Julia 是一種非常獨(dú)特的類型化語言,具有自己的執(zhí)行模式和特征,但其中一個(gè)非??岬奶卣魇撬亩嘀嘏砂l(fā)。首先,Julia 的多重派發(fā)速度非???。除此之外,使用 Julia 的多態(tài)派發(fā)能夠?qū)⒑瘮?shù)定義應(yīng)用為結(jié)構(gòu)屬性。這使得繼承(inheritance)在 Julia 內(nèi)部可行。不僅如此,使用 Julia 的多重派發(fā)還可以實(shí)現(xiàn)函數(shù)的擴(kuò)展,這對(duì)于包擴(kuò)展來說好處多多,因?yàn)闊o論什么時(shí)候顯式地導(dǎo)入 method,用戶都可以對(duì)它進(jìn)行更改。因此,用戶可以很容易地顯式導(dǎo)入自己的 method,并選擇相應(yīng)結(jié)構(gòu)將它擴(kuò)展為一個(gè)新的函數(shù)。

適用于 ML 的程度

與 Python 不同,Julia 語言的目的是應(yīng)用于統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域。Python 語言則創(chuàng)建于 20 世紀(jì) 90 年代早期,是一種面向?qū)ο蟮恼Z言,并且自此之后也改變了很多。盡管 Python 具有很長的發(fā)展歷史以及廣泛的應(yīng)用范圍,但使用一種專門創(chuàng)建用于高級(jí)統(tǒng)計(jì)工作的語言能夠帶來很大的好處。

我認(rèn)為在線性代數(shù)中使用 Julia 要好于 Python。原生的 Python 只能緩慢完成線性代數(shù),而原生的 Julia 可以飛快地完成。這是因?yàn)椋琍ython 最開始并不是開發(fā)來用于支持與機(jī)器學(xué)習(xí)相關(guān)的所有矩陣和方程運(yùn)算的。這并不意味著 Python 不好,特別是當(dāng)有了 NumPy 擴(kuò)展庫之后。但就不導(dǎo)入額外擴(kuò)展庫而言,Julia 更適合于這類數(shù)學(xué)運(yùn)算。此外,與 Python 相比,Julia 的操作數(shù)系統(tǒng)與 R 語言的更為相近。使用 Julia 語言能夠更快速、更容易地完成大多數(shù)線性代數(shù)運(yùn)算,如以下代碼所示:

 
 
 
 
  1. Python -> y = np.dot(array1,array2) 
  2. R -> y <- array1 * array2 
  3. Julia -> y = array1 .* array2 

包管理器

Julia 的 Pkg 包管理器秒殺 Python 的 Pip 包管理器。Pkg 自帶 REPL 和 Julia 包,你可以從中構(gòu)建、添加、移除、實(shí)例化包。因?yàn)?Pkg 和 Git 是綁定的使得以上操作尤其便利。更新、添加包都非常容易??傊?,比起 Python 的 Pip,Pkg 的使用體驗(yàn)在任何時(shí)候都要愉悅得多。

總結(jié)

R 也好,Julia 也好,Python 也好,你用什么語言其實(shí)沒那么重要。重要的是,你要知道每種語言都有它的劣勢,沒有哪種語言是無可挑剔的。特別是當(dāng)你的程序用途廣泛時(shí)尤為明顯(從機(jī)器學(xué)習(xí)到 GUI 到 API)。綜上所述,Julia 和 Python 一樣是我很喜歡的語言之一。Python 有更好的包,如果項(xiàng)目足夠小,我就會(huì)用 Python。但是對(duì)于擁有數(shù)百萬個(gè)觀察結(jié)果的數(shù)據(jù)集,用 Python 讀取數(shù)據(jù)都會(huì)變成一件難事。

總之,我對(duì) Julia 的未來滿懷期待。Julia 寫起來很有趣,而且在未來的數(shù)據(jù)科學(xué)領(lǐng)域可能會(huì)變得更加實(shí)用。

【本文是專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】


分享標(biāo)題:有人說Julia比Python好,還給出了5個(gè)理由
當(dāng)前URL:http://m.5511xx.com/article/coohdgp.html