5個原因告訴你,為什麼說Julia比Python要好?

2021-01-11 讀芯術

全文共2050字,預計學習時長6分鐘

Julia是一種多範式函數程式語言,主要用於機器學習和統計編程。

Python是另一種用於機器學習的多範式程式語言,儘管大家通常認為Python是面向對象的。

另一方面,Julia更多的是基於功能範式。雖然Julia當然沒有Python那麼受歡迎,但是將Julia用於數據科學有一些巨大的好處,使得它在Python的許多情況下都是一個更好的選擇。

1、廣泛

Python的應用範圍很廣泛,很多事情可以用Python做,但不能用Julia做。當然,這只是本地語言,因為我們現在討論的多功能性指的是語言的多功能性。Julia代碼在R、Latex、Python和C中都是通用的可執行代碼,這意味著典型的數據科學項目有可能只編寫一次,並從包裝器中的另一種語言以Julia為本機進行編譯,或者只發送字符串。

PyCall和RCall也是相當大的交易。考慮到Julia的一個嚴重缺點實際上是包,因此在需要時調用Python和R非常方便。PyCall在Julia中得到了很好的實現,而且做得非常好,非常有用。

2、多分派

Julia是一種非常獨特的類型語言,它有自己的怪癖和特性,但其中最酷的特性之一是Julia的多分派。首先也是最重要的是,Julia的多分派速度很快。除此之外,使用Julia的多分派使得函數定義作為結構的屬性應用成為可能。

不僅如此,使用Julia的多分派使得函數可擴展。這對包擴展是一個很大的好處,因為無論何時顯示導入方法,用戶都可以更改它。顯式導入方法並將其擴展為將結構路由到新函數會很容易。

3、速度

談到Julia不談速度是很難的。Julia以速度快而自豪。Julia與Python不同,Python是一種編譯語言,它主要是用自己的基礎編寫的。然而,與C等其他編譯語言不同,Julia是在運行時編譯的,而傳統語言是在執行之前編譯的。Julia,特別是寫得好的時候,可以和C語言一樣快,有時甚至比C語言更快。Julia使用即時(JIT)編譯器,編譯速度非常快,儘管它編譯起來更像是一種解釋語言,而不是像C語言或Fortran這樣的傳統低級編譯語言。

4. 包管理器(Package Manager)

首先要說的是,Julia的Pkg包管理器是Python的Pip包管理器之上的整個世界。Pkg附帶了自己的REPL和Julia包,可以從中構建、添加、刪除和實例化包。這特別方便,因為Pkg與Git的連接。更新很容易,添加軟體包總是很容易的,而且總的來說Pkg在Python的Pip上隨時都可以使用。

5.在機器學習中的應用

與Python不同,Julia用於統計和機器學習。Python是在90年代早期作為一種簡單的面向對象語言創建的,儘管從那時起它已經發生了很大的變化。考慮到Python的歷史,以及Python的廣泛用途(因為它非常流行),使用Julia這種專門為高級統計工作而設計的語言可以顯示出很多好處。

Julia比Python稍勝一籌的另一個方面是線性代數。Vanilla Python可以通過線性代數,但vanilla Julia可以飛躍線性代數。當然,這是因為Python從未打算支持機器學習中的所有矩陣和方程。這不是Python的壞處,尤其是在NumPy上,但是就一個沒有包的體驗而言,Julia覺得這類數學更受歡迎。Julia的操作數系統比Python的更接近R,這是一個很大的好處。大多數線性代數是更快和更容易做。下面展示一個向量點積方程(dot-product equation),以便進一步說明這一點:

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

結論

使用哪種語言並不重要,不管是R、Julia、Python還是Scala。然而,需要注意的是,每一種語言都有其缺點,沒有一種語言會成為「完美的語言」。如果你在編程上多才多藝,從機器學習到GUI再到API,情況尤其如此。Python有更好的包,通常如果項目足夠小,我會轉向Python,但是對於具有數百萬觀察的數據集,甚至很難用Python讀取此類數據。

總之,我很看好Julia.的未來。Julia寫起來很有趣,而且將來在數據科學領域可能會變得更加可行。

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 如何使用 Julia 語言實現「同態加密+機器學習」?
    同樣,許多開發者會因算法選擇的影響、多線程等原因,認為浮點數噪聲太多(我要強調的是,有一個關鍵的區別是,浮點算法本身是確定性的,儘管因為實現的複雜性,它有時不會展現出這種確定性,但 CKKS 原語的噪聲真的很多,但這也許可以讓用戶意識到噪聲並沒有第一次出現時那麼可怕)。
  • 為什麼Julia比Python快?因為天生理念就更先進啊
    那麼你知道為什麼 Julia 比 Python 快嗎?這並不是因為更好的編譯器,而是一種更新的設計理念,關注「人生苦短」的 Python 並沒有將這種理念納入其中。其實像以前 C 或其它主流語言在使用變量前先要聲明變量的具體類型,而 Python 並不需要,賦值什麼數據,變量就是什麼類型。然而沒想到正是這種類型穩定性,讓 Julia 相比 Python 有更好的性能。
  • 家裡有蟑螂怎麼辦,5個原因告訴你蟑螂為什麼難滅
    家裡有蟑螂怎麼辦,5個原因告訴你蟑螂為什麼難滅面對打不死的小強,你是否常常感覺無能為力、束手無策?蟑螂到底能活多久?蟑螂難以消滅的原因有哪些?東方漢諾殺蟲,5個因素來解釋!家裡有蟑螂怎麼辦1、蟑螂難以消滅的5個原因(1)蟑螂小強的適應能力強蟑螂適應藥物、環境和擴散能力非常強。
  • 從零開始寫Python爬蟲,四大工具你值得擁有!
    如果你正在學習編程,那麼「爬蟲」絕對是你不可忽視的。那麼,學習python爬蟲之前需要哪些準備?一顆熱愛學習,不屈不撓的心一臺有鍵盤的電腦(什麼系統都行。我用的os x,所以例子會以這個為準)html相關的一些知識。
  • 學習Python對辦公真的有用嗎?用經驗告訴你答案
    目前我在做兼職文案,以我的親身經歷為例,我可以很負責的告訴大家,學習python確實可以在某些方面提升你的工作效率,但是,並不是每個人都適合去學習它。去年9月份,我刷到朋友圈的python廣告,廣告語中宣傳的「高效、省時」很是吸引人。但是,促使我真正下定決心學python的,還是這些廣告中販賣的職場焦慮。
  • Python2 已終結,入手Python 3,你需要這30個技巧
    這篇教程有 30 個你會喜歡的方法。勤勞的程式設計師們,這裡有 30 條使用 Python 時實用的建議和小技巧。你可以把讀這篇文章當做工作間隙的小憩,而且我保證你學到的東西會跟工作時一樣多。1.不過它的優勢不止這些,它那些如魔法般的內置命令行也讓是我愛使用它的原因。
  • Python能幹什麼?為什麼會這麼火
    為什麼會這麼火?那麼Python能幹什麼呢?1.網站後端程式設計師:使用它單間網站,後臺服務比較容易維護。Python課程為什麼會這麼火呢?因為Python簡單明了,非常容易上手。對於新手或者初學者來說,Python是非常容易學習和使用的,最容易學習的程式語言之一。部分原因是因為它簡化了語法,更加貼近於自然語言,可以讓Python代碼更加快速的執行。
  • Python程式設計師最常犯的10個錯誤,你中招了嗎?
    鑑於此,本文列出了Python開發人員常犯的10個小錯誤,資深程序猿也難免會中招哦。原因和上一個案例中出現的問題相似,但這裡的錯誤更加細微。函數foo1沒有對變量lst進行賦值操作,而函數foo2有賦值操作。首先, lst += [5]是lst = lst + [5]的縮寫形式,在函數foo2中試圖對變量lst進行賦值操作(Python將變量lst默認為本地作用域的變量)。
  • 如何讓Python像Julia一樣快地運行
    包含下面的所有基準測試的完整代碼的 Notebook 可在此處(https://www.ibm.com/developerworks/community/blogs/jfp/resource/julia_python.zip)找到。 鑑於各種社交媒體上的評論,我添加了這樣一句話:我沒有在這裡使用 Python 的替代性實現。我沒有編寫任何 C代碼:如果您不信,可試試尋找分號。
  • Python為什麼這麼火?小孩子適合學習python編程嗎?
    今天咱們就來好好聊聊最直接的幾個原因。不想看過程的也可以直接拉到最後一段看結論哈。原因一、Python是一種面向對象的語言誰說程式設計師找不著對象?在Python裡分分鐘就可以寫個新對象,不喜歡的話甚至還能刪掉呢。程式語言兩個非常重要的概念,即面向對象與面向過程。
  • 為什麼說舒適圈正在侵蝕你的人生?這裡有三個原因告訴你
    那麼人為什麼不想突破舒適圈呢?這裡歸納出三個阻止人變更好的原因,以及我們該怎麼克服它們。第一個原因——在意別人的眼光。人類是群體社會,會經由別人的評價來定義自己的社會地位。人的天性就是會在意別人對自己的看法,會抗拒跟別人示弱,會錯估別人眼中對自己的評價。也因此,我們會不敢冒險嘗試新的行為。
  • 蟑螂怎麼消滅,5個原因告訴你家裡為什麼有蟑螂
    那麼家裡有蟑螂怎樣辦,室內蟑螂為什麼集聚集且肆無忌憚地暴虐橫行呢?益倫白蟻蟲害防治公司告訴你原因以及怎樣預防家庭蟑螂的危害!蟑螂為什麼那麼不受人的待見?究其緣由,在於它是以死亡動物和渣滓為食的食腐動物,且會惹起很多人過敏,還有不少人看見它們的身影或屍體,也會產生本能的懼怕。
  • Julia程式語言助力天氣/氣候模式
    我們因此推薦使用具有2指數位的16位作為標準的Posit格式,其32個數量級的寬動態範圍為天氣和氣候模式提供了巨大的潛力。雖然主要集中於地球物理流體的模擬,但研究結果也表明對於在計算流體力學的廣闊領域中應用精度較低的Posit數制具有重要的意義和應用前景。圖文
  • Python已是曇花一現,但你卻還在堅持嗎?看看他們的理由
    Python已是曇花一現,你為什麼還在堅持呢?Python,是一門最適合人工智慧的程式語言,並且,這門語言十分適合新手學習,正因為如此,讓發展了近三十年的python,在最近幾年火爆全網。可為什麼說python已是曇花一現呢?因為有人找不到工作。
  • Python初學者請注意!別這樣直接運行python命令
    原因當然是Python簡明易用的腳本語法,只需把一段程序放入.py文件中,就能快速運行。而且Python語言很容易上手模塊。比如你編寫了一個模塊my_lib.py,只需在調用這個模塊的程序中加入一行import my_lib即可。這樣設計的好處是,初學者能夠非常方便地執行命令。但是對攻擊者來說,這等於是為惡意程序大開後門。
  • 為什麼 Biopython 的在線 BLAST 這麼慢?
    這到底是為什麼呢?NCBIWWW 基本用法首先,我們來看一下提供了基於 API 在線比對的 Biopython 模塊。它具有三個非可選參數:第一個參數是用於搜索的 blast 程序,為小寫字符串。目前,qblast(biopython==1.7.4)僅適用於 blastn,blastp,blastx,tblast 和 tblastx。第二個參數指定要搜索的資料庫。關於這個選項,在 NCBI Guide to BLAST 上有詳細的描述。第三個參數是包含查詢序列的字符串。
  • 數據科學的Python軟體包
    數據科學和機器學習是這個時代的兩項苛刻技術,而Python在這兩個領域的表現要好於優。除Python之外,R是數據科學項目中經常使用的另一種程式語言。R更快,並且包含更多的計算和統計庫;但是,在本文中,我們僅介紹了頂級Python數據科學庫,如果您想掌握數據科學,則應該了解這些庫。數據科學導論目前,業務數據已變得與金錢一樣有價值。
  • 海賊王 四個原因告訴你索隆為什麼會是個路痴
    看過《海賊王》的都知道,索隆是個路痴,還是不一般的路痴。相信很多海米有時候去到陌生的環境也會突然找不到北,用我們這的話來說就是「掉向」,但是如果你熟悉了環境之後,基本上就不會再出現找不到地方的情況了,而我們的索大大不是這樣,就算讓他在一個地方呆兩年,他一樣找不到路!
  • 這幾個常用的python庫你需要知道
    python可以說是近幾年最火熱、最實用的、最容易上手的工具之一了。功能強大、應用廣泛,可以幫你搜集工作數據,還能幫你下載音樂,電影,於是就掀起了一波學習python的大潮,小編也毫不猶豫的加入了。但是對於向小編一樣的小白來說,剛開始學習還是有些困難的,需要首先了解python的一些基礎知識。所以小編就整理了一些常用的python庫,希望對正在學習python的小夥伴有所幫助。1.MatplotlibMatplotlib是一個用於創建二維圖和圖形的底層庫。
  • Python開發者必知的 11 個 Python GUI 庫,你用過幾個?
    Python開發者必知的 11 個 Python GUI 庫,你用過幾個? 當你使用python編寫應用程式時,你就一定要使用GUI。Python GUI的選擇有很多。目前來說,Python GUI程序庫有30多個跨平臺框架。現在就列出其我認為最好的11個.