在256種編程語言中,瞭解數據科學的編程語言!

作者 | Rashi Desai
譯者 | Arvin,責編 | 屠敏
頭圖 | CSDN 下載自東方 IC
出品 | CSDN(ID:CSDNnews)

以下爲譯文:

數據科學在相當長一段時間以來一直是一件大事。在當今飛速發展的技術世界中,當人類傾向於生成大量數據時,我們必須知道如何分析,處理和使用這些數據以獲取更多可瞭解的業務見解。

關於數據科學中Python和 R的較量已經有足夠多的論述了,但是我在這裏不是談論這個問題。兩種語言我們都需要這就是我想說的全部。我已經創建了數據科學的十大編程語言列表,您可以在2020年學習這些語言,當然也可以嘗試列表外的語言。

我選擇語言列入榜單時,主要根據其受歡迎程度,Github被提及的次數,優缺點以及與2020年數據科學的相關性。

Python

第一個數據科學中所需要的就是Python。

我可以寫幾十篇關於Python爲什麼是數據科學首選語言的文章。

由於它的多功能性,數據科學家可以使用Python來解決幾乎所有與數據科學相關的問題。

爲什麼是Python?

Python的面向對象特性使數據科學家能夠以更高的穩定性,模塊化和代碼可讀性來執行任務。儘管數據科學只是多樣化Python生態系統的一小部分,但Python擁有專門的深度學習和其他機器學習庫以及像scikit-learn,Keras和TensorFlow等流行工具。Python 使數據科學家能夠開發複雜的數據模型,並將其直接應用到生產系統。

根據Python開發人員的調查結果,有84%的受訪者使用Python作爲主要語言,而有16%的受訪者將其作爲第二語言。

Python中的數據

對於數據收集,Python支持CSV,JSON,SQL表和使用beautiful soup工具獲取的網絡數據。

用於Python的數據分析庫panda是您用於數據探索的最佳工具。通過組織成數據幀,panda可以輕鬆地過濾、排序和顯示數據。

下面幾個類庫提供了對數據建模的支持:

  1. NumPy —數值模擬分析

  2. SciPy—科學計算與分析

  3. scikit-learn-訪問衆多強大的機器學習算法。它還提供了一個直觀的界面,使數據科學家可以充分利用機器學習的所有功能,而不必考慮它的複雜性

對於數據可視化,matplotlib,plot.ly,nbconvert可以將Python文件轉換爲HTML文檔,列出漂亮的圖形和儀表板,幫助數據科學家既有力又美觀地來展示研究結果。

R

R是一個開源工具,它允許數據科學家跨平臺地使用諸多操作系統。統計是這一技術的核心優勢。R不僅僅是一種語言,它本身就是一個進行統計計算的生態系統。它的內置函數有助於執行數據處理、數學建模、數據可視化操作等。

R中的數據

R支持Excel,CSV,文本文件,Minitab或SPSS文件格式,使用Rvest獲取的網絡數據以及其他常見的用於數據收集的文件格式。

R的建立是爲了對大型數據集進行統計和數值分析,因此,可以對數據探索執行大量操作-對數據進行排序,轉置表,創建圖,生成頻率表,採樣數據,概率分佈,合併數據,變量轉換等。推薦去探索dplyr,tidyr,以獲得更多的最佳結果。

R是一種適合於科學可視化的健壯環境,有許多專門用於數據可視化結果圖形顯示的軟件包。我們可以使用圖形模塊獲得基本圖形,圖表和繪圖。可視化效果也可以保存爲jpg.等圖像格式或單獨的PDF文件。ggplot2是高級圖(例如帶有迴歸線的複雜散點圖)的福音。

R Vs Python

對於數據科學來說,關於Python與R的爭論是永無止境的,但是作爲數據科學家,我們需要明白,雖然兩者都有優點,但也都有缺點。

大多數程序員將一種或另一種編程語言視爲他們的“首選”。假設,R用戶有時渴望Python語言中內置的面向對象的功能。類似地,一些Python用戶夢想着R中內置的統計分佈。這意味着很有可能在一個項目中結合這兩種領先的技術來得到一組獨特的互補函數。

Scala

Scala是一種結合面向對象和函數式編程的簡潔的高級語言。這種語言最初是爲Java虛擬機(JVM)構建的,Scala的強項之一是與Java代碼交互非常容易。

爲什麼選擇Scala?

選擇Scala學習數據科學的主要原因之一可以歸功於Apache Spark。結合Scala與Apache Spark一起來處理大數據(Big Data),這對於數據科學家來說是無價的。

許多基於Hadoop構建的高性能數據科學框架通常都是使用Scala或Java編寫的。在這些環境中使用Scala的原因是由於它對併發性的順滑支持。由於Scala是在JVM上運行,因此與Hadoop搭配起來簡直無敵。

爲什麼不使用Scala?

Scala唯一的缺點是它的學習曲線。另外,它的社區不是很活躍,因此在出現錯誤的情況下自行尋找問題的答案就會變得很繁瑣。

當數據量大到足以實現該技術的全部潛力時,Scala非常適合這類項目。

SAS

SAS —統計分析系統

與R一樣,SAS是爲高級數據分析和複雜的統計操作而開發的工具。它是一種封閉源代碼的專有工具,提供了各種各樣的統計功能來執行復雜的建模。SAS由於其高可靠性而被大型組織和專業人員廣泛使用。

爲什麼選擇SAS?

請注意,SAS不是最適合初學者和獨立數據科學愛好者的工具,因爲SAS是爲滿足不斷發展的業務需求而量身定製的。但是,如果您希望將數據科學作爲自己的職業,那麼最好掌握SAS的操作知識,以獲得清晰的認識。

SAS擅長通過SAS Base(運行SAS環境的主要編程語言)執行統計建模。

爲什麼不使用SAS?

儘管SAS一直是企業分析領域無可爭議的市場領導者,但要與Python或R進行功能比較,SAS似乎很難對數據進行建模和可視化。學習曲線非常棘手,並且通常被擁有巨大預算的大型公司使用。

SAS爲數據科學家提供了多種認證計劃。包括以下幾種:

1)SAS Academy for Data Science

The SAS Academy for Data Science 認證計劃提供數據操作、高級分析、人工智能和機器學習等課程內容,詳見www.sas.com

2)SAS Programmer Professional Certificate | Coursera

這是Coursera 提供的SAS® 認證,提供SAS® Base編程語言等內容,詳見www.coursera.org

Julia

Julia語言處理數據的速度比Python,JavaScript,Matlab,R要快,在性能上略遜於Go,Lua,Fortran和C。數值分析是該技術的優勢,但是Julia也能很好地應對通用編程。

爲什麼選擇Julia?

Julia比其他腳本語言更快,這使得數據科學家可以在快速開發Python / MATLAB / R的同時生成快速的代碼。

藉助Julia數據生態系統,多維數據加載非常快速。它並行執行聚合,聯接和預處理操作。Julia包括各種數學庫,數據處理工具以及用於通用計算的軟件包。除此之外,與來自Python,R,C / Fortran,C ++和Java的庫的集成非常容易。

爲什麼不選擇Julia?

由於Julia不是一個完全成熟的工具,因此社區範圍仍然很有限。在查找錯誤或故障時,有限的選項或解決方案可能會成爲障礙。業內專家們非常希望,當Julia變得更加成熟時,能夠與Python和R全面競爭。

MATLAB /Octave

A方案——MATLAB

MATLAB是第一個用於數據科學的工具。我是在2017年開始學習數據科學的,當時我在Coursera上學習了吳恩達(Andrew Ng)的機器學習課程,他在課堂上使用了Octave。與此同時,我在本科課程中學習MATLAB,並在Courser課程中練習MATLAB。

我知道MATLAB是執行深刻的數學運算最好的編程語言。數據科學大量涉及到數學,這使得這項技術成爲進行數學建模,圖像處理和數據分析的強大工具。

爲什麼選擇MATLAB?

它擁有一個龐大的數學函數庫,用於線性代數,統計,傅立葉分析,濾波,優化,數值積分和求解常微分方程。MATLAB提供了用於可視化數據的內置圖形和用於創建自定義繪圖的工具。

爲什麼不選擇MATLAB?

現在,數據科學家很少使用MATLAB,儘管他們說MATLAB對於數學和建模非常有用。隨着R和Python在數據科學領域的問世,MATLAB逐漸衰落。鑑於高昂的許可費用,它目前僅在學術界流行。

您在數據科學中使用的語言在很大程度上取決於您正在解決的問題。如果您的問題需要複雜的數學計算,至少對於初始數據探索和初步結果而言,那麼沒有比MATLAB更好的起點了。

B方案——OCTAVE

它是MATLAB的主要替代方案。一般來說,這兩種技術沒有本質的區別,只是有一些小的的差別。與MATLAB一樣,如果需要強大的算術計算,Octave可以用於數據量相對較小的項目中。

Java

Java可能是用於編程和業務開發的最古老的面嚮對象語言之一。Hive,Spark和Hadoop等大多數知名的大數據工具都是用Java編寫的。Java有許多我們可能不知道的用於數據科學的庫和工具,例如Weka,Java-ML,MLlib和Deeplearning4j。

爲什麼選擇Java?

Java可能不會成爲數據科學的一種顯而易見的語言,但是由於諸如Hadoop之類的許多數據科學框架都運行在Java虛擬機(JVM)上,它仍是數據科學的頂級編程語言之一。

Hadoop是一種流行的數據科學框架,用於管理大數據應用程序的數據處理和存儲。Hadoop具有一次處理無限任務的能力,因此它支持存儲和處理大量數據。

總而言之,如果您想享受Hadoop框架的功能,Java是最好的數據科學編程語言之一。

Perl

Perl是高級編程語言,通用編程語言,並且是解釋性的動態編程語言。由於Perl語言依賴於輕量級數組,因此Perl能夠更有效地處理數據查詢,而不需要程序員的過多處理。

爲什麼選擇Perl?

由於它具有通用腳本語言的多功能性,因此作爲動態類型化的腳本語言它與Python有很多共同點。Perl在諸如生物信息學,金融和統計分析等定量領域中得到了應用。

隨着Perl 5的發佈,處理大型數據集的能力比以前的版本要好得多。它正在用Perl 6實現“大數據精簡版”。波音,西門子以及更多的財富500強企業都已經準備好在數據科學領域積極嘗試Perl。

Perl通過協調大規模的數據插入和查詢,以簡單,可維護的架構映射或減少TB級的數據。Perl 6的計劃是提供一種模塊化,可插入的體系結構,並具有針對大數據管理的靈活性和定製性。

爲什麼不選擇Perl?

Perl並不是一種僅靠學習就可以使您成爲高效的數據科學家的語言。它的速度不夠快,語法也不友好。由於它是一種相對不受歡迎的語言,因此社區對數據科學的支持較少。值得一提的是,“ Perl開發人員”社區正在變得越來越多。總體而言,目前並沒有將Perl開發爲數據科學語言的動力。

Haskell

Haskell是一種具有類型推斷功能的通用靜態類型純函數式編程語言。

爲什麼選擇Haskell?

Haskell具有強大的財務代碼基礎,可以輕鬆與Excel交互進行計算。這對編碼數學概念很有用。一般來說,Haskell擅長抽象,因此,與其他任何數學或軟件工具一樣,數據科學也可以從Haskell的連貫抽象中受益。

Haskell也可以使用HaskellR直接對R中的值進行運算。

Haskell擁有DataHaskell,DataHaskell是一種利用Haskell編程語言來進行可靠且可複製的數據科學和機器學習開發的開源資源。Haskell的數據科學社區肯定會隨着DataHaskell的發展而發展。

Target的首席AI科學家說:“ Haskell具有表現力,更快,更安全。Haskell傳統上不用於數據科學,因此庫的選擇受到限制。Haskell與數學有着密切的關係,最終它的類型系統和數學特性對特定領域的業務代碼的幫助會比其他任何東西都強大。”

爲什麼不選擇Haskell?

Haskell具有作爲數據科學語言的應用程序,但是,Haskell的數據科學知識還沒有Python或R豐富。Haskell在數據科學功能方面並不強大。學習曲線本質上是困難且耗時的。

原文https://towardsdatascience.com/top-9-languages-for-data-science-in-2020-824239f930c

☞TIOBE 6 月編程語言排行榜:C 與 Java 進一步拉開差距、Rust 躍進 TOP 20

你點的每個“在看”,我都認真當成了喜歡
相關文章