自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全面比較編程語言Julia和Python,讓您更容易做出抉擇!

譯文
開發(fā) 前端
Julia和Python是兩種時下流行的機器學習編程語言。本文將從實際應用的角度為您比較兩者之間的差別。

長期以來,Python一直是程序員、乃至其他專業(yè)人士最喜歡的編程語言之一。Facebook、Instagram、Spotify、Netflix、ILM、Dropbox、Yahoo!和Google都在其應用服務中使用著Python。

不過,隨著應用業(yè)務對于數(shù)據(jù)操作和科學計算需求的持續(xù)增加,人們往往需要依賴一種更加高效的數(shù)據(jù)處理語言。為此,Alan Edelman、Viral B. Shah、Jeff Bezanson和Stefan Karpinski于2021年開發(fā)出了Julia。它在算術編程(arithmetic coding)方面可以作為Python的絕佳替代品,協(xié)助進行各項數(shù)據(jù)處理工作。目前,Julia已經(jīng)成為了數(shù)據(jù)科學、??可視化??、機器學習、以及人工智能領域重要的工具之一。

Julia的特點

為了解決Python等語言在數(shù)據(jù)處理等應用場景中的科學計算能力不足等問題。Julia在開發(fā)之初就被設計為旨在是使用LLVM(Low Level Virtual Machine)編譯器框架所構建的即時編譯器(just-in-time,JIT),來提高運行時的性能。在最好的情況下,Julia會在編譯而不是在解釋時,可以達到、甚至超過C語言的性能。

Julia的交互式命令行類似于Python的REPL(read-eval-print loop,讀取-評估-打印循環(huán))。各種一次性使用的腳本和命令可以被立即插入其中。同時,Julia有著與Python類似的、簡短且有效的語法。

Julia可以直接與第三方的C和Fortran庫進行通信。您可以使用PyCall模塊作為Python程序的接口,并在Python和Julia之間傳輸數(shù)據(jù)。

Julia能夠以一種類似于Lisp(List Processing,一種早期自由軟件項目)語言的方式,生成應用程序,甚至去編輯它們的代碼。在Julia 1.1中被引入的調試套件,則使得您能夠在本地REPL中,遍歷代碼的執(zhí)行結果,檢查變量,以及將斷點應用到代碼中。例如,逐個代碼執(zhí)行的函數(shù)可以去執(zhí)行各種細粒度的任務。

Python的特點

近年來,經(jīng)典且全面的Python持續(xù)與大量第三方程序保持著密切的聯(lián)系。雖然??Python??當初并非針對數(shù)據(jù)科學家而設計,但是它已經(jīng)被運用到了該領域。由于Python模塊能夠簡化特殊算法的創(chuàng)建,因此許多數(shù)據(jù)科學家和機器學習專業(yè)人士,都會使用Python進行情感分析和自然語言處理(natural language processing,NLP)。

由于屬于一種解釋型語言,因此Python的代碼并不需要經(jīng)歷編譯的過程。它不但開源而且可以被免費下載。Python能夠支持所有面向對象的概念,其中包括:類、多態(tài)性、以及封裝等。由于本身具有可擴展性,因此Python代碼可以用C或C++進行編寫和編譯。

Python屬于一種易于學習和編寫的高級編程語言。通過導入預先存在的Python庫,開發(fā)人員可以不必重新輸入相同的數(shù)據(jù),進而節(jié)省了開發(fā)時間。其逐行順序執(zhí)行的方式簡化了調試過程。而在運行時,Python變量的數(shù)據(jù)類型則取決于它的用途,而并非其聲明。

而作為一種面向對象的解釋性編程語言,Python在動態(tài)類型、高級數(shù)據(jù)結構、以及動態(tài)綁定等方面具有較強的適應性,程序員僅通過幾行代碼,便可創(chuàng)建出動態(tài)的程序。因此,Python的流行和使用都非常廣泛。

Python的主要弱點是處理速度較慢。當然,Python對此也在持續(xù)改進中。其新的、簡化了的PyPy 7.1解釋器就在速度上提升了不少。此外,Python正在通過并行和多核計算進行速度上的提升。

Julia與Python的全面比較

1.專為機器學習而設計

Python可被用于執(zhí)行各項應用活動。而Julia的設計則主要考慮的是機器學習和統(tǒng)計工作的負載。

a) Julia具有在高級統(tǒng)計方面的顯著優(yōu)勢;而Python不一定能夠處理機器學習中用到的所有方程和矩陣。例如,在線性代數(shù)方面,“vanilla”Julia的表現(xiàn)就明顯優(yōu)于“vanilla”Python。

b) Julia在非包(non-package)體驗方面優(yōu)于Python,更適合機器學習類計算;當然作為一門優(yōu)秀的語言,Python也可以通過NumPy(一種開源的Python數(shù)值計算擴展)來存儲和處理大型矩陣。

c) Julia的操作數(shù)系統(tǒng)(operand system)與用于統(tǒng)計分析、繪圖的R語言操作環(huán)境旗鼓相當。而Python在操作計算方面的性能劣勢較為明顯。

2.速度

a) Julia的性能與速度可與Fortran和C等編譯性語言相媲美。不過,Julia并非解釋型語言,它主要依賴類型聲明,來執(zhí)行那些需要在運行時編譯的程序。

b) 開發(fā)人員可以使用Julia來實現(xiàn)高性能的應用,而無需借助手動分析和優(yōu)化方法。這對性能問題的解決,十分有利。

c) 憑借著豐富的計算和數(shù)值特征,Julia的程序執(zhí)行效率很高。此外,它還具有多重分派能力,可以快速地開發(fā)出數(shù)組和整數(shù)等數(shù)據(jù)類型。

d) Python開發(fā)人員(https://skillsstreet.com/python-developer-skills/)正在通過優(yōu)化工具、第三方JIT編譯器、以及外部庫來進一步提高Python的速度。

3.在數(shù)據(jù)科學中的應用

a) 如前所述,Python可被用于各種目的,數(shù)據(jù)分析只是其中的一項關鍵性應用。

b) 由于Python包括了能夠輕松、快速地進行數(shù)據(jù)分析和處理的應用程序、工具和庫,因此它成為了數(shù)據(jù)科學中最受歡迎的工具之一。

c) 為了滿足日益增長的針對數(shù)據(jù)分析和程序執(zhí)行任務的需求,開發(fā)者會將Julia應用到科學計算、大規(guī)模線性代數(shù)、機器學習、并行和分布式計算等場景中。

d) Julia增強了Python的性能,使得數(shù)據(jù)科學家能夠輕松地執(zhí)行計算和分析。

4.多功能性

a) Julia能夠讓數(shù)據(jù)科學家運用各種語言去開發(fā)項目,并通過字符串的傳輸進行構建。

b) 作為一種適應性非常強的編程語言,Julia可以在LaTeX、C、Python和R語言中生成可執(zhí)行的代碼。此外,它在執(zhí)行復雜且大型的代碼段時的速度也比Python快。

c) 鑒于Julia的封裝劣勢,您可以通過RCall和PyCall,按需調用R和Python。

d) 作為通用可靠語言的最佳選擇,Python可用于Web開發(fā)、自動化和腳本的編寫。

5.文檔和社區(qū)支持

a) 每種編程語言都離不開工具的支持。經(jīng)過幾十年的發(fā)展,Python已擁有了龐大且活躍的互助性編程社區(qū)。此類社區(qū)不但能夠通過持續(xù)改進,向開發(fā)人員提供各種工具支持、用戶界面和系統(tǒng)資源,而且能夠確保各種顯著的程序問題,能夠得到足夠的關注。

b) 作為一種新興的編程語言,Julia的社區(qū)支持仍處于起步階段,目前尚不支持各種主要資源和調試工具。當然,其社區(qū)也正在變得日漸活躍起來。

結論

綜上所述,Julia有著更快的處理速度和易于代碼翻譯的特點,當然它也需要進一步開發(fā)與完善。而Python雖然在性能方面有待改進,但是它仍然是程序員、數(shù)據(jù)科學家和學生的首選語言。不過,如果您正在從事需要大量數(shù)學計算的項目的話,那么我推薦您選擇使用Julia語言。

譯者介紹

陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項目實施經(jīng)驗,善于對內外部資源與風險實施管控,專注傳播網(wǎng)絡與信息安全知識與經(jīng)驗;持續(xù)以博文、專題和譯文等形式,分享前沿技術與新知;經(jīng)常以線上、線下等方式,開展信息安全類培訓與授課。

原文標題:??Julia vs. Python: Key Differences To Consider??,作者:sai kumar

責任編輯:華軒 來源: 51CTO
相關推薦

2019-06-26 15:41:26

AI云原生云遷移

2023-05-24 09:31:51

CGo

2021-03-08 15:33:46

Windows10操作系統(tǒng)微軟

2012-02-27 09:20:43

Julia編程語言

2023-12-13 13:00:57

2021-01-14 10:48:05

技術RPCRS

2021-09-27 08:56:36

Python代碼函數(shù)

2020-07-07 07:00:00

RustGo語言編程語言

2017-07-12 17:36:21

廣告易

2019-02-21 09:00:00

PythonGolang編程語言

2024-02-19 18:06:04

PythonJuliaRust

2010-03-11 10:51:19

Python編程語言

2010-03-10 19:46:07

Python編程語言

2018-12-12 09:33:58

編程語言機器學習代碼

2018-01-02 14:00:16

編程語言Bug

2019-08-13 10:53:04

2020-05-25 09:06:58

Julia語言Python

2019-07-08 11:05:05

Windows

2016-11-18 15:42:06

存儲

2023-10-11 11:24:08

SQL和PythonPython
點贊
收藏

51CTO技術棧公眾號