大佬Python對陣新秀Julia,誰能問鼎機器學習和數(shù)據(jù)科學?

在 Python 涵蓋的眾多領域中,數(shù)據(jù)分析應當是應用最廣同時最為重要的。Python 通過加載大量的庫、工具和應用程序,使得科學計算和數(shù)據(jù)分析工作變得快速便捷。

網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了當雄免費建站歡迎大家使用!

Julia 語言(https://julialang.org/) 專門針對科學計算、機器學習、數(shù)據(jù)挖掘、大規(guī)模線性代數(shù)、分布式和并行計算,在 Julia 的使用者眼里,Python 不夠快也不夠方便。此消彼長,當它擅長某一項工作時,肯定會忽略其他部分。

Julia 語言簡介

Julia 由一個四人組成的團隊于 2009 年創(chuàng)建,在 2012 年正式對外發(fā)布,旨在解決用于科學計算和數(shù)據(jù)處理的編程語言(比如 Python)和應用程序的缺陷。團隊成員追求完美和極致,他們表示:

我們需要一個開放源碼且擁有自由許可證的語言。我們希望兼具 C 語言的速度與 Ruby 的動態(tài)性。我們希望編程語言具有同像性,既有 Lisp 這樣真正的宏,又有 Matlab 這樣帶有明顯的、為人熟知的數(shù)學符號。我們希望它像 Python 一樣可以用于一般編程,又像 R 語言一樣適用于統(tǒng)計學,能夠像 Perl 那樣自然地用于字符串處理,就可以像 Matlab 那樣強力支持線性代數(shù),此外還能像 shell 一樣做程序的粘合劑。它能夠讓初學者輕松入門,又能給資深開發(fā)者提供高級特性。我們希望它具有很強的交互性,同時又屬于編譯型語言。

為了實現(xiàn)這些想法,Julia 遵循了如下策略:


  • 為了更快的速度,定義為編譯型語言,而不是解釋型。Julia 使用 LLVM 編譯器框架進行即時編譯(JIT)。在某些情況下,Julia 可以接近甚至達到 C 語言的速度。

  • 采用直接但有用的語法。Julia 語法的簡潔程度可以與 Python 媲美,雖然簡潔,但是表現(xiàn)力很強。

  • 動態(tài)類型。你可以指定變量的類型,如“無符號的32位整數(shù)”。但是,你也可以創(chuàng)建類型的層次結構以允許處理特定類型變量,例如編寫一個接受整數(shù)的函數(shù),通常不指定整數(shù)長度。最后如果在特定的上下文中不需要,你可以不用完全輸入。

  • 可以調用 Python、C 和 Fortran 編寫的庫。Julia 可以直接調用 C 語言和 Fortran 編寫的外部庫。也可以通過 PyCall 庫與 Python 代碼進行交互,此外, Python 和 Julia 之間的數(shù)據(jù)可以共享。

  • 元編程。Julia 程序可以生成其他的 Julia 程序,甚至可以修改自己的代碼,就像 Lisp 這樣的語言一樣。


Julia 相比 Python 的優(yōu)勢

Julia 從一開始就是為科學和數(shù)值計算而設計的。因此,Julia 在此領域具有眾多優(yōu)點也就不足為奇。它的優(yōu)點如下:


  • 速度更快。Julia 的 JIT 編譯和類型聲明意味著它可以比“純粹的”、未被優(yōu)化的 Python 快幾個數(shù)量級。雖然 Python 可以通過 PyPy 或者 Cython 等方式進行速度優(yōu)化,但 Julia 從設計之初就具有天然的速度優(yōu)勢。

  • 友好的數(shù)學語法。Julia 的主要目標受眾是科學計算語言和 Matlab、R、Mathematica、Octave 等環(huán)境的用戶。Julia 的數(shù)學運算語法看起來更像計算機世界之外的普通數(shù)學公式,它使得非程序員很容易掌握。

  • 自動內存管理。像 Python 一樣,Julia 不需要用戶太多關注分配和釋放內存的細節(jié),它提供了一些針對垃圾回收的手動控制方法。這樣的好處在于,假設你從 Python 轉投 Julia,你依然可以享有 Python 一樣的便利。

  • 并行性。只有充分利用機器上可用的全部資源(特別是多核),數(shù)學和科學計算領域才能夠蓬勃發(fā)展。Python 和 Julia 都支持并行運算。但是,在并行計算方面,Julia 的語法比 Python 更簡單,這樣就降低了并行運算的使用門檻,使其能夠得到更廣泛的應用。


Python 相比 Julia 的優(yōu)勢

Python 是一種易于學習的通用計算語言,已經(jīng)發(fā)展成為科學計算領域的主力軍。Python 之所以能夠在數(shù)據(jù)科學領域占據(jù)重要地位,得益于它的下列優(yōu)勢:


  • Julia 數(shù)組索引從 1 開始。Julia 的這個特性表面上看問題不大,但是我們不能排除它潛在的風險。在大多數(shù)語言中,包括 Python 和 C 語言,數(shù)組的第一個元素通常用 0 來訪問,例如,string[0] 表示 Python 字符串中的第一個字符。但是 Julia 則使用 1 作為數(shù)組中的第一個元素,它這樣做的原因是為了迎合一些數(shù)學和科學應用(比如Mathematica)的用戶。雖然默認情況下 Julia 采用1索引,但是可以通過其他手段(https://docs.julialang.org/en/latest/devdocs/offset-arrays/) 讓其支持 0 索引,畢竟用 1 作為第一個元素索引的方式違背程序員的編程習慣。

  • Julia 還很年輕。Julia 語言自2009年以來一直處在開發(fā)階段,并且一路上增減了多種功能。盡管開發(fā)者一直宣稱開發(fā)接近尾聲(https://github.com/JuliaLang/julia/milestone/4),但實際上它仍然沒有發(fā)布1.0版本。

  • Python 擁有更豐富的第三方軟件包。Python 數(shù)量龐大且實用的第三方軟件包是它能夠吸引大量開發(fā)者的殺手锏。而年輕的 Julia 語言的生態(tài)系統(tǒng)稍顯薄弱,它使用了很多現(xiàn)有的 C 和 Python 庫,但是開發(fā) Julia 自己軟件包的任務依然迫在眉睫。

  • Python 具有龐大的社區(qū)優(yōu)勢。如果編程語言沒有一個強大、活躍的社區(qū)支持,那么它的根基是不扎實的。Python 現(xiàn)在正擁有著一個強大的社區(qū)。雖然 Julia 的社區(qū)發(fā)展迅猛,但是和 Python 社區(qū)的規(guī)模相比依然不值一提。


總結

一個是經(jīng)過 8 年開發(fā)的新秀 Julia,一個是圈內公認的標榜 Python,兩種編程語言在數(shù)據(jù)科學領域各有千秋,綜合以上的優(yōu)劣對比,你會更傾向選擇哪種編程語言入門呢?

網(wǎng)頁名稱:大佬Python對陣新秀Julia,誰能問鼎機器學習和數(shù)據(jù)科學?
分享網(wǎng)址:http://muchs.cn/article36/dpepg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機網(wǎng)站內鏈、App設計、品牌網(wǎng)站設計網(wǎng)站建設、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設