社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

数据科学、机器学习IDE概览

进击的Coder • 5 年前 • 551 次点击  

转载来源

公众号:论智

来源:semanti.ca

阅读本文大概需要 3 分钟。


编者按: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

原文地址:https://semanti.ca/blog/?recommended-ide-for-data-scientists-and-machine-learning-engineers


推荐阅读

1

跟繁琐的命令行说拜拜!Gerapy分布式爬虫管理框架来袭!

2

跟繁琐的模型说拜拜!深度学习脚手架 ModelZoo 来袭!

3

只会用Selenium爬网页?Appium爬App了解一下

4

妈妈再也不用担心爬虫被封号了!手把手教你搭建Cookies池


崔庆才

静觅博客博主,《Python3网络爬虫开发实战》作者

隐形字

个人公众号:进击的Coder

长按识别二维码关注

这里“阅读原文”,查看更多


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/7ZGYMKcCeu
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/27089
 
551 次点击