0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

根據(jù)數(shù)據(jù)科學(xué)家最常使用的四種編程語言推薦相應(yīng)的IDE

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-11-14 09:01 ? 次閱讀

編者按:semanti.ca整理的數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)IDE概覽,涵蓋R、Python、Scala、Julia.

IDE提供的豐富特性對軟件開發(fā)極為有用,大大提高了程序員的生活質(zhì)量。這一點(diǎn)同樣適用于數(shù)據(jù)科學(xué)家。然而,因?yàn)閿?shù)據(jù)科學(xué)家除了可以選擇傳統(tǒng)的IDE,還可以選擇Jupyter notebook這樣在瀏覽器中運(yùn)行的新工具。因此,數(shù)據(jù)科學(xué)家——特別是剛?cè)腴T數(shù)據(jù)科學(xué)的新手——可能會困惑該使用哪個(gè)開發(fā)環(huán)境。

本文我們將根據(jù)數(shù)據(jù)科學(xué)家最常使用的四種編程語言(R、Python、Scala、Julia),推薦相應(yīng)的IDE。

我們將根據(jù)semanti.ca的數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)工程師的使用情況,排序每種語言推薦的IDE。

Python

PyCharm

PyCharm是JetBrains出品的跨平臺的Python IDE。

PyCharm為Python提供了一流的支持,包括代碼補(bǔ)全、錯(cuò)誤檢測、在線代碼修正。智能搜索可以跳轉(zhuǎn)至任意類、文件、符號,甚至是IDE行動或工具窗口。一次點(diǎn)擊即可切換聲明、超方法、測試、用法、實(shí)現(xiàn),等等。

PyCharm包括很多工具,集成的調(diào)試器和測試運(yùn)行器,性能調(diào)試工具,內(nèi)置終端,集成主要版本控制系統(tǒng)(包括Git、SVN、Mercurial),遠(yuǎn)程開發(fā)(遠(yuǎn)程解釋器),集成ssh終端,集成Docker和Vagrant。

PyCharm集成了Jupyter Notebook,具備一個(gè)交互Python控制臺,并支持Anaconda以及多種科學(xué)計(jì)算包,包括Matplotlib和NumPy。

PyCharm的暗色主題效果不錯(cuò),對許多semanti.ca的數(shù)據(jù)科學(xué)家和開發(fā)者而言,這是一項(xiàng)巨大的優(yōu)勢。

https://www.jetbrains.com/pycharm/

Spyder

Spyder是主要為科學(xué)家、工程師、數(shù)據(jù)分析師設(shè)計(jì)的強(qiáng)大科學(xué)環(huán)境。這一全面的開發(fā)工具提供了高級的編輯、分析、調(diào)試、性能調(diào)試功能,以及數(shù)據(jù)探索、交互執(zhí)行、深度檢查、可視化功能。Spyder可以通過插件和API進(jìn)一步擴(kuò)展功能。

Spyder的多語言編輯器具有函數(shù)/類瀏覽器,代碼分析工具,自動代碼補(bǔ)全,橫向/縱向分割,跳轉(zhuǎn)到定義等功能。

Spyder自身也是用Python編寫的。

https://www.spyder-ide.org/

R

RStudio

RStudio是R下特性最豐富的IDE。它既有供桌面使用的開源版本和商業(yè)版本(Windows、Mac、Linux),又可以在瀏覽器中使用(基于運(yùn)行RStudio Server或RStudio Server Pro的Linux服務(wù)器)。

RStudio提供代碼高亮、代碼補(bǔ)全、智能縮進(jìn)等功能。在源代碼編輯器中可以直接執(zhí)行R代碼。開發(fā)者可以迅速地跳轉(zhuǎn)到函數(shù)定義,閱讀幫助和文檔,方便地基于項(xiàng)目管理多個(gè)工作目錄。集成的數(shù)據(jù)查看器可供查看表格數(shù)據(jù),在調(diào)試模式下結(jié)合逐步執(zhí)行可以實(shí)時(shí)檢查數(shù)據(jù)是如何更新的。

RStudio集成了Git和SVN支持,同時(shí)支持編寫HTML、PDF、Word文檔、幻燈片、交互式圖形(基于Shiny和ggvis)。

https://www.rstudio.com/

Eclipse的StatET插件

Eclipse是最流行的Java IDE之一。通過安裝插件,它可以支持其他編程語言。StatET是一個(gè)基于Eclipse的R IDE。它提供了編寫R代碼和構(gòu)建R軟件包的一組工具,包括集成的R控制臺、對象瀏覽器、包管理起、調(diào)試器、數(shù)據(jù)查看器、R幫助系統(tǒng),并支持本地和遠(yuǎn)程安裝的多個(gè)R版本。可選的Sweave和Wikitext(Markdown和Textile)附加組件提供了帶有R代碼段的LaTeX/Wikitext文檔的源代碼編輯器和構(gòu)建工具。

代碼編輯器提供了語法高亮,折疊Roxygen注釋、函數(shù)定義、其他代碼塊,自動修正行縮進(jìn),輸入和粘貼的自動縮進(jìn)等功能。

內(nèi)建的調(diào)試器可以很方便地管理斷點(diǎn)和條件斷點(diǎn)。調(diào)試器提供了一個(gè)清晰的調(diào)用棧,可以直接訪問選定的變量、源代碼和指令指針,當(dāng)然也支持逐步執(zhí)行源代碼。

StatET還包括一個(gè)數(shù)據(jù)查看器,可供查看向量、矩陣、dataframe,可以快速顯示很大的表格。

http://www.walware.de/goto/statet

R Tools for Visual Studio

Visual Studio是.NET、C++最常使用的IDE。R Tools for Visual Studio(RTVS)是一個(gè)基于MIT許可發(fā)布的自由、開源的Visual Studio擴(kuò)展。

在Visual Studio下,數(shù)據(jù)科學(xué)家能夠以便利的結(jié)構(gòu)組織和管理相關(guān)文件,并使用R代碼、R文檔、R Markdown、SQL請求、保存的過程等的模板。同時(shí)提供了包管理器和SQL Server集成。

RTVS可以綁定本地和遠(yuǎn)程的工作區(qū),這讓開發(fā)者可以在本地基于較小的數(shù)據(jù)集編寫R代碼,然后很方便地在更強(qiáng)大的云計(jì)算機(jī)中的更大的數(shù)據(jù)集上運(yùn)行代碼。

和任何現(xiàn)代的IDE一樣,RTVS包括語法高亮、代碼格式化、簽名幫助、跳轉(zhuǎn)到定義、查找所有引用、代碼片段功能。

開發(fā)者可以通過R Markdown文檔分享數(shù)據(jù)結(jié)果,markdown的代碼段可以使用集成的R代碼。

RTVS為R提供了完整的REPL體驗(yàn),可以在交互窗口中直接運(yùn)行源文件的代碼。

繪圖是R的一個(gè)重要部分。為了方便用R繪圖,RTVS支持多個(gè)獨(dú)立的繪圖窗口,每個(gè)具有獨(dú)立的歷史,并支持在窗口間移動圖形。圖形可以保存為圖像或PDF文件,或者復(fù)制到剪貼板。

變量探索器可供檢查全局作用域和指定包的作用域中的變量,還能查看可排序的表格,并導(dǎo)出至CSV。

https://github.com/Microsoft/RTVS

Jupyter Notebook的R核心

和許多數(shù)據(jù)科學(xué)家設(shè)想的不同,Jupyter并不局限于使用Python:notebook應(yīng)用是語言無關(guān)的,這意味著它可以使用其他編程語言。

加載IRKernel并啟用后,就可以在notebook環(huán)境下使用R了。

https://irkernel.github.io/

R-Brain

R-Brain提供了一個(gè)數(shù)據(jù)科學(xué)云平臺(也可自行部署在內(nèi)部服務(wù)器上)。R-Brain基于Jupyter,提供了IDE、控制臺、notebook、markdown的集成環(huán)境(支持R和Python)。它也集成了代碼補(bǔ)全、調(diào)試、打包、發(fā)布功能。

R-Brain以靈活的用戶界面提供了經(jīng)典的Jupyter notebook的標(biāo)準(zhǔn)功能(交互式notebook、終端、文本編輯器、文件瀏覽器、豐富的輸出形式,等等)。它使用了Docker容器技術(shù),所以這一解決方案可以方便地部署在云上或內(nèi)部服務(wù)器上。

數(shù)據(jù)科學(xué)家可以開發(fā)、打包、分享、發(fā)布分析工作區(qū),數(shù)據(jù)集,用R、Python、SQL編寫的應(yīng)用。R-Brain同樣提供了便利的交互瀏覽數(shù)據(jù)庫綱要、查看表格內(nèi)容、導(dǎo)出數(shù)據(jù)的功能。

https://r-brain.io

Scala

Scala IDE for Eclipse

Scala IDE for Eclipse為開發(fā)純Scala應(yīng)用及Scala-Java混合應(yīng)用提供了高級編輯、調(diào)試支持,可以在Scala和Java引用之間跳轉(zhuǎn)。

和任何現(xiàn)代IDE一樣,它具備代碼補(bǔ)全、代碼語義高亮、跳轉(zhuǎn)到定義功能。它可以實(shí)時(shí)捕捉編譯錯(cuò)誤(在你輸入代碼的同時(shí))。

Scala調(diào)試器可供在閉包間跳轉(zhuǎn),并提供了為Scala定制的調(diào)試信息。

Scala向?qū)Ш喕祟悺ο?、特質(zhì)(trait)、包的創(chuàng)建過程。重構(gòu)功能可以讓你修改標(biāo)識符名,組織引入,提取部分代碼為新方法,等等。

Scala IDE的特性還包括代碼格式化,智能縮進(jìn)器,標(biāo)記文件內(nèi)的任意標(biāo)識符,完整的語法高亮支持(包括注釋、控制結(jié)構(gòu)、嵌入的XML),代碼折疊。

http://scala-ide.org/

IntelliJ IDEA的Scala插件

IntelliJ IDEA是另一個(gè)JetBrains出品的知名IDE。Scala插件使IntelliJ IDE可以支持Scala、SBT、Scala.js、Hocon、Play框架。

Scala插件支持以下特性:代碼輔助(高亮、補(bǔ)全、格式化、重構(gòu)),瀏覽,查找,類型和隱式轉(zhuǎn)換信息。該插件同樣支持SBT等構(gòu)建工具,ScalaTest、Specs2、uTest等測試框架。還有Scala調(diào)試器、工作表、Ammonite腳本。

https://plugins.jetbrains.com/plugin/1347-scala

Jupyter Notebooks

Scala或Apache Toree核心相當(dāng)容易安裝,都具有增加Maven/SBT依賴和JAR的功能。和Python、R一樣,notebook中的單元可以分別運(yùn)行,這讓數(shù)據(jù)科學(xué)家可以訓(xùn)練一次模型后多次使用。

單元支持可以markdown(含LaTeX公式支持),這讓數(shù)據(jù)科學(xué)家可以使用notebook作為和客戶、同事分享的報(bào)告。

和其他語言一樣,使用Jupyter Notebook的不足在于核心容易出錯(cuò)或功能有限,非常有限的調(diào)試功能,甚至沒有調(diào)試功能。數(shù)據(jù)科學(xué)家需要仔細(xì)地組織他們的單元,否則可能導(dǎo)致很多困惑。

Scale核心:http://almond-sh.github.io/almond/stable/docs/intro

Apache Toree: https://github.com/apache/incubator-toree

Julia

Juno

Juno使用Julia這一結(jié)合了易用和性能的語言構(gòu)建。Juno的目標(biāo)是移除編程的沮喪和猜測,將樂趣帶回編程。Juno的混合風(fēng)格結(jié)合了notebook的探索能力和IDE的高效。

Juno基于GitHub出品的Atom編輯器,繼承了Atom強(qiáng)大的編輯功能和美觀的用戶界面。

Juno同時(shí)包含Julia和Atom包,以提供Julia特定的增強(qiáng),例如語法高亮,繪圖面板,集成Julia調(diào)試器Gallium,運(yùn)行代碼的控制臺,等等。

它的定制性很強(qiáng),具備面向高級用戶的特性,例如多光標(biāo)、模糊文件搜索、vim鍵綁定。

http://junolab.org/

Jupyter Notebooks

IJulia提供了Julia語言后端,可以讓你在Jupyter Notebook中使用Julia語言。IJulia允許定制Julia運(yùn)行環(huán)境,安裝額外的Julia核心。IJulia還有一個(gè)貼心的功能,當(dāng)你輸入IPython魔法命令時(shí),IJulia會提示效果相似的Julia代碼。例如,輸入%load filename會提示你使用IJulia.load("filename")。

https://github.com/JuliaLang/IJulia.jl

Visual Studio Code的Julia擴(kuò)展

Visual Studio Code的Julia擴(kuò)展提供了語法高亮、代碼片段、LaTex片段、Julia特定命令、集成REPL、代碼補(bǔ)全、懸浮提示、代碼檢查、代碼導(dǎo)航等功能,以及用于運(yùn)行測試、構(gòu)建、性能評測、構(gòu)建文檔的Visual Studio Code任務(wù)。

https://marketplace.visualstudio.com/items?itemName=julialang.language-julia

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)IDE概覽

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    TI科學(xué)家談浮點(diǎn)DSP未來發(fā)展

    TI科學(xué)家談浮點(diǎn)DSP未來發(fā)展 自十多年前浮點(diǎn)數(shù)字信號處理器(DSP)誕生以來,便為實(shí)時(shí)信號處理提供了算術(shù)上更為先進(jìn)的備選方案。不過,定點(diǎn)器件至今仍是業(yè)界的主流--當(dāng)然低成本是主要原因。定點(diǎn)DSP每
    發(fā)表于 11-03 15:18

    科學(xué)家推出多種波動描記傳感器

      美國得克薩斯大學(xué)的科學(xué)家們最新一項(xiàng)研究結(jié)果表明,人們很快將根據(jù)腸子的波動情況當(dāng)場揭穿騙子的謊言?! ≡摯髮W(xué)的科研小組還認(rèn)為,將來有一天,以記錄心臟活動為主的多種波動描記器將極大地提高其工作質(zhì)量
    發(fā)表于 10-24 11:40

    生物電磁波揭密 場導(dǎo)發(fā)現(xiàn)(俄羅斯華裔科學(xué)家寫的腦控技術(shù)叢書)

    生物電磁波揭密場導(dǎo)發(fā)現(xiàn)(俄羅斯華裔科學(xué)家寫的腦控技術(shù)叢書)
    發(fā)表于 03-05 09:31

    通往數(shù)據(jù)科學(xué)家的崎嶇道路

    如果你曾經(jīng)查看過數(shù)據(jù)科學(xué)家的崗位要求,你就知道它的職責(zé)范圍有多廣。有的數(shù)據(jù)科學(xué)家致力于自然語言處理、計(jì)算機(jī)視覺、深度學(xué)習(xí),有的則從事A/B測
    的頭像 發(fā)表于 07-26 09:17 ?2532次閱讀

    科學(xué)家們發(fā)明了一機(jī)器人化學(xué)家 意圖通過其發(fā)現(xiàn)新的藥物

    科學(xué)家們發(fā)明了一機(jī)器人化學(xué)家,可以通過機(jī)器學(xué)習(xí)技術(shù)徹底改變新分子的發(fā)現(xiàn)方式。科學(xué)家也希望通過這一技術(shù)能夠發(fā)現(xiàn)新的藥物。
    發(fā)表于 11-05 10:26 ?1295次閱讀

    哪些才是對數(shù)據(jù)科學(xué)家最迫切的技能呢?

    AngelList提供的是列出數(shù)據(jù)科學(xué)家崗位的公司數(shù)而不是崗位數(shù)。我把AngelList從所有分析里面排除掉了,因?yàn)槠渌阉魉惴ㄋ坪醢凑誒R型的邏輯搜索進(jìn)行,沒有辦法改成AND。如果你尋找的是“數(shù)據(jù)
    的頭像 發(fā)表于 11-19 18:14 ?3035次閱讀

    數(shù)據(jù)科學(xué)家與機(jī)器學(xué)習(xí)工程師怎么區(qū)分

    十年來,我們一直在談?wù)?b class='flag-5'>數(shù)據(jù)科學(xué)數(shù)據(jù)科學(xué)家。雖然在怎么才叫“數(shù)據(jù)科學(xué)家”的問題上始終存在著爭議,
    的頭像 發(fā)表于 05-18 11:24 ?3192次閱讀

    數(shù)據(jù)科學(xué)家常犯的10個(gè)編程錯(cuò)誤

    數(shù)據(jù)科學(xué)家是“比軟件工程師更擅長統(tǒng)計(jì)學(xué),比統(tǒng)計(jì)學(xué)家更擅長軟件工程的人”。
    的頭像 發(fā)表于 05-24 14:50 ?2642次閱讀

    數(shù)據(jù)科學(xué)家數(shù)據(jù)工程師的區(qū)別

    數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師的主要區(qū)別,可以用ETL和DAD的區(qū)別來解釋。
    的頭像 發(fā)表于 07-10 17:06 ?2611次閱讀

    企業(yè)如何解決數(shù)據(jù)科學(xué)家短缺詳細(xì)方法什么

     隨著企業(yè)以數(shù)據(jù)為中心的文化,以做出決策和規(guī)劃,數(shù)據(jù)科學(xué)家對全球企業(yè)的重要性日益增加。但是企業(yè)無法足夠快地聘請數(shù)據(jù)科學(xué)家,因?yàn)楹细窈蜻x人仍然
    的頭像 發(fā)表于 04-18 10:31 ?3441次閱讀

    采訪資深數(shù)據(jù)科學(xué)家:成為數(shù)據(jù)科學(xué)家應(yīng)具有的品質(zhì)

    作為一門逐漸成熟的新興領(lǐng)域,與數(shù)據(jù)科學(xué)相關(guān)的很多領(lǐng)域開始變得備受青睞,比如數(shù)據(jù)工程,數(shù)據(jù)分析以及機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。數(shù)據(jù)
    的頭像 發(fā)表于 06-30 11:28 ?2246次閱讀

    什么是數(shù)據(jù)科學(xué)家的最佳編程語言?

    每個(gè)數(shù)據(jù)科學(xué)學(xué)習(xí)者都最常問的問題:“ 什么是數(shù)據(jù)科學(xué)家的最佳編程
    的頭像 發(fā)表于 07-05 11:32 ?2472次閱讀

    數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師能合二為一嗎?

    雖然數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師的角色似乎截然不同,但數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師有許多共同的特點(diǎn)和共技能。這些重疊的技能包括處理和操作大數(shù)據(jù)集、應(yīng)用
    的頭像 發(fā)表于 07-25 10:17 ?2510次閱讀

    中國聯(lián)通AI科學(xué)家廉士國入選全球前2%頂尖科學(xué)家榜單

    %頂尖科學(xué)家榜單是Elsevier和斯坦福大學(xué)John P.A. Ioannidis教授團(tuán)隊(duì)合作的具有全球影響力的項(xiàng)目成果,為全球?qū)W術(shù)界提供了一個(gè)面向科學(xué)家長期科研表現(xiàn)的衡量指標(biāo),旨在更客觀、更真實(shí)地反映科學(xué)家全球影響力。榜單以
    的頭像 發(fā)表于 11-07 16:18 ?2636次閱讀

    四種編程語言之間的區(qū)別和聯(lián)系

    編程語言是一人與計(jì)算機(jī)之間進(jìn)行交流的方式,不同的編程語言有著不同的特點(diǎn)和用途。本文將對四種常見
    的頭像 發(fā)表于 02-05 14:16 ?1377次閱讀