編者按:semanti.ca整理的數據科學、機器學習IDE概覽,涵蓋R、Python、Scala、Julia.
IDE提供的豐富特性對軟件開發極為有用,大大提高了程序員的生活質量。這一點同樣適用于數據科學家。然而,因為數據科學家除了可以選擇傳統的IDE,還可以選擇Jupyter notebook這樣在瀏覽器中運行的新工具。因此,數據科學家——特別是剛入門數據科學的新手——可能會困惑該使用哪個開發環境。
本文我們將根據數據科學家最常使用的四種編程語言(R、Python、Scala、Julia),推薦相應的IDE。
我們將根據semanti.ca的數據科學家和機器學習工程師的使用情況,排序每種語言推薦的IDE。
Python
PyCharm
PyCharm是JetBrains出品的跨平臺的Python IDE。
PyCharm為Python提供了一流的支持,包括代碼補全、錯誤檢測、在線代碼修正。智能搜索可以跳轉至任意類、文件、符號,甚至是IDE行動或工具窗口。一次點擊即可切換聲明、超方法、測試、用法、實現,等等。
PyCharm包括很多工具,集成的調試器和測試運行器,性能調試工具,內置終端,集成主要版本控制系統(包括Git、SVN、Mercurial),遠程開發(遠程解釋器),集成ssh終端,集成Docker和Vagrant。
PyCharm集成了Jupyter Notebook,具備一個交互Python控制臺,并支持Anaconda以及多種科學計算包,包括Matplotlib和NumPy。
PyCharm的暗色主題效果不錯,對許多semanti.ca的數據科學家和開發者而言,這是一項巨大的優勢。
https://www.jetbrains.com/pycharm/
Spyder
Spyder是主要為科學家、工程師、數據分析師設計的強大科學環境。這一全面的開發工具提供了高級的編輯、分析、調試、性能調試功能,以及數據探索、交互執行、深度檢查、可視化功能。Spyder可以通過插件和API進一步擴展功能。
Spyder的多語言編輯器具有函數/類瀏覽器,代碼分析工具,自動代碼補全,橫向/縱向分割,跳轉到定義等功能。
Spyder自身也是用Python編寫的。
https://www.spyder-ide.org/
R
RStudio
RStudio是R下特性最豐富的IDE。它既有供桌面使用的開源版本和商業版本(Windows、Mac、Linux),又可以在瀏覽器中使用(基于運行RStudio Server或RStudio Server Pro的Linux服務器)。
RStudio提供代碼高亮、代碼補全、智能縮進等功能。在源代碼編輯器中可以直接執行R代碼。開發者可以迅速地跳轉到函數定義,閱讀幫助和文檔,方便地基于項目管理多個工作目錄。集成的數據查看器可供查看表格數據,在調試模式下結合逐步執行可以實時檢查數據是如何更新的。
RStudio集成了Git和SVN支持,同時支持編寫HTML、PDF、Word文檔、幻燈片、交互式圖形(基于Shiny和ggvis)。
https://www.rstudio.com/
Eclipse的StatET插件
Eclipse是最流行的Java IDE之一。通過安裝插件,它可以支持其他編程語言。StatET是一個基于Eclipse的R IDE。它提供了編寫R代碼和構建R軟件包的一組工具,包括集成的R控制臺、對象瀏覽器、包管理起、調試器、數據查看器、R幫助系統,并支持本地和遠程安裝的多個R版本。可選的Sweave和Wikitext(Markdown和Textile)附加組件提供了帶有R代碼段的LaTeX/Wikitext文檔的源代碼編輯器和構建工具。
代碼編輯器提供了語法高亮,折疊Roxygen注釋、函數定義、其他代碼塊,自動修正行縮進,輸入和粘貼的自動縮進等功能。
內建的調試器可以很方便地管理斷點和條件斷點。調試器提供了一個清晰的調用棧,可以直接訪問選定的變量、源代碼和指令指針,當然也支持逐步執行源代碼。
StatET還包括一個數據查看器,可供查看向量、矩陣、dataframe,可以快速顯示很大的表格。
http://www.walware.de/goto/statet
R Tools for Visual Studio
Visual Studio是.NET、C++最常使用的IDE。R Tools for Visual Studio(RTVS)是一個基于MIT許可發布的自由、開源的Visual Studio擴展。
在Visual Studio下,數據科學家能夠以便利的結構組織和管理相關文件,并使用R代碼、R文檔、R Markdown、SQL請求、保存的過程等的模板。同時提供了包管理器和SQL Server集成。
RTVS可以綁定本地和遠程的工作區,這讓開發者可以在本地基于較小的數據集編寫R代碼,然后很方便地在更強大的云計算機中的更大的數據集上運行代碼。
和任何現代的IDE一樣,RTVS包括語法高亮、代碼格式化、簽名幫助、跳轉到定義、查找所有引用、代碼片段功能。
開發者可以通過R Markdown文檔分享數據結果,markdown的代碼段可以使用集成的R代碼。
RTVS為R提供了完整的REPL體驗,可以在交互窗口中直接運行源文件的代碼。
繪圖是R的一個重要部分。為了方便用R繪圖,RTVS支持多個獨立的繪圖窗口,每個具有獨立的歷史,并支持在窗口間移動圖形。圖形可以保存為圖像或PDF文件,或者復制到剪貼板。
變量探索器可供檢查全局作用域和指定包的作用域中的變量,還能查看可排序的表格,并導出至CSV。
https://github.com/Microsoft/RTVS
Jupyter Notebook的R核心
和許多數據科學家設想的不同,Jupyter并不局限于使用Python:notebook應用是語言無關的,這意味著它可以使用其他編程語言。
加載IRKernel并啟用后,就可以在notebook環境下使用R了。
https://irkernel.github.io/
R-Brain
R-Brain提供了一個數據科學云平臺(也可自行部署在內部服務器上)。R-Brain基于Jupyter,提供了IDE、控制臺、notebook、markdown的集成環境(支持R和Python)。它也集成了代碼補全、調試、打包、發布功能。
R-Brain以靈活的用戶界面提供了經典的Jupyter notebook的標準功能(交互式notebook、終端、文本編輯器、文件瀏覽器、豐富的輸出形式,等等)。它使用了Docker容器技術,所以這一解決方案可以方便地部署在云上或內部服務器上。
數據科學家可以開發、打包、分享、發布分析工作區,數據集,用R、Python、SQL編寫的應用。R-Brain同樣提供了便利的交互瀏覽數據庫綱要、查看表格內容、導出數據的功能。
https://r-brain.io
Scala
Scala IDE for Eclipse
Scala IDE for Eclipse為開發純Scala應用及Scala-Java混合應用提供了高級編輯、調試支持,可以在Scala和Java引用之間跳轉。
和任何現代IDE一樣,它具備代碼補全、代碼語義高亮、跳轉到定義功能。它可以實時捕捉編譯錯誤(在你輸入代碼的同時)。
Scala調試器可供在閉包間跳轉,并提供了為Scala定制的調試信息。
Scala向導簡化了類、對象、特質(trait)、包的創建過程。重構功能可以讓你修改標識符名,組織引入,提取部分代碼為新方法,等等。
Scala IDE的特性還包括代碼格式化,智能縮進器,標記文件內的任意標識符,完整的語法高亮支持(包括注釋、控制結構、嵌入的XML),代碼折疊。
http://scala-ide.org/
IntelliJ IDEA的Scala插件
IntelliJ IDEA是另一個JetBrains出品的知名IDE。Scala插件使IntelliJ IDE可以支持Scala、SBT、Scala.js、Hocon、Play框架。
Scala插件支持以下特性:代碼輔助(高亮、補全、格式化、重構),瀏覽,查找,類型和隱式轉換信息。該插件同樣支持SBT等構建工具,ScalaTest、Specs2、uTest等測試框架。還有Scala調試器、工作表、Ammonite腳本。
https://plugins.jetbrains.com/plugin/1347-scala
Jupyter Notebooks
Scala或Apache Toree核心相當容易安裝,都具有增加Maven/SBT依賴和JAR的功能。和Python、R一樣,notebook中的單元可以分別運行,這讓數據科學家可以訓練一次模型后多次使用。
單元支持可以markdown(含LaTeX公式支持),這讓數據科學家可以使用notebook作為和客戶、同事分享的報告。
和其他語言一樣,使用Jupyter Notebook的不足在于核心容易出錯或功能有限,非常有限的調試功能,甚至沒有調試功能。數據科學家需要仔細地組織他們的單元,否則可能導致很多困惑。
Scale核心:http://almond-sh.github.io/almond/stable/docs/intro
Apache Toree: https://github.com/apache/incubator-toree
Julia
Juno
Juno使用Julia這一結合了易用和性能的語言構建。Juno的目標是移除編程的沮喪和猜測,將樂趣帶回編程。Juno的混合風格結合了notebook的探索能力和IDE的高效。
Juno基于GitHub出品的Atom編輯器,繼承了Atom強大的編輯功能和美觀的用戶界面。
Juno同時包含Julia和Atom包,以提供Julia特定的增強,例如語法高亮,繪圖面板,集成Julia調試器Gallium,運行代碼的控制臺,等等。
它的定制性很強,具備面向高級用戶的特性,例如多光標、模糊文件搜索、vim鍵綁定。
http://junolab.org/
Jupyter Notebooks
IJulia提供了Julia語言后端,可以讓你在Jupyter Notebook中使用Julia語言。IJulia允許定制Julia運行環境,安裝額外的Julia核心。IJulia還有一個貼心的功能,當你輸入IPython魔法命令時,IJulia會提示效果相似的Julia代碼。例如,輸入%load filename會提示你使用IJulia.load("filename")。
https://github.com/JuliaLang/IJulia.jl
Visual Studio Code的Julia擴展
Visual Studio Code的Julia擴展提供了語法高亮、代碼片段、LaTex片段、Julia特定命令、集成REPL、代碼補全、懸浮提示、代碼檢查、代碼導航等功能,以及用于運行測試、構建、性能評測、構建文檔的Visual Studio Code任務。
https://marketplace.visualstudio.com/items?itemName=julialang.language-julia
-
編程語言
+關注
關注
10文章
1939瀏覽量
34608 -
機器學習
+關注
關注
66文章
8382瀏覽量
132444 -
數據科學
+關注
關注
0文章
165瀏覽量
10046
原文標題:數據科學、機器學習IDE概覽
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論