利器 | JupyterLab 数据分析必备IDE完全指南

原创 游薪渝 Data2Art 2019-05-05

Jupyter is not just a tool, it powers the whole innovation of the world.

目录

  • 简介

  • 先尝为敬

  • 介绍

    • 类型

  • Notebook 基本功能

    • %matplotlib

    • %timeit

    • %run

    • Cell 类型

    • 自自动补全

    • 问号查看详细⽂文档

    • Magic Code

  • 快捷键

  • 制作 PPT

  • JupyterLab 独有的实⽤用功能

    • 灵活多窗⼝口视图

    • 展开和收缩Cell

    • 拖拽 Cell

    • 主题

    • 支持多种类型⽂文件

  • 插件

    • Awesome jupyterlab extension list Github Extenion

    • Jupyter Git

    • Jupyterlab-toc

    • Jupyterlab-drawio

    • Jupyterlab_voyager

  • 安装其他语⾔言的 Kernel

    • 安装 R Kernel

    • 安装 Julia Kernel Notebook

  • 资源推荐

  • 总结

简介

JupyterLab 是 Jupyter 团队为 Jupyter 项目开发的下一代基于 Web 的界面。相对于 Jupyter Notebook,它的集成性更强,更灵活并且更易扩展。它支持100种多种语言[2],支持多种文档相互集成,实现了交互式计算的新工作流程^1[3]。

如果说 Jupyter Notebook 像是一个交互式的笔记本,那么 Jupyter Lab 更像是一个交互式的 VSCode。另外,JupyterLab 非常强大的一点是,你可以将它部署在云服务器,不管是电脑、平板还是手机,都只需一个浏览器,即可远程访问使用。

使用 JupyterLab,你可以进行数据分析相关的工作,可以进行交互式编程,可以学习社区中丰富的 Notebook 资料。

在 GitHub上有超过170万个公共 Jupyter Notebook[4]。 例如官方 "A gallery of interesting Jupyter Notebooks"[5] 中列举了如下主题的各类 Notebook:

•编程与计算机科学•统计学,机器学习和数据科学•数学,物理,化学,生物学•地球科学和地理空间数据•语言学与文本挖掘•心理学和神经科学•机器学习,统计和概率•物理,化学和生物学•经济与金融•地球科学和地理空间数据

如果你是教授者,你还可以使用它进行教学,例如,可以通过安装插件,自动化检查学生的代码结果。你可以阅读这本书获取更多建议和信息:《Teaching and Learning with Jupyter》[6]。

总之,无论你是什么专业,无论你是做什么领域,无论你是之前使用过 Jupyter Notebook,还是完全没有接触过。从现在开始,使用 JupyterLab 这一得心应手的工具,都可以提升你的工作效率,让你的体验更加美好。

Note: 阅读本文最佳方式是打开电脑,实际的动手试一试这些功能

先尝为敬

在安装之前,你可以直接在 Binder 中尝试使用 JupyterLab[7]。

或者查看一些 Notebooks:https://nbviewer.jupyter.org

安装

安装十分简易,可以通过 conda, pip, 或者 pipenv 进行安装[8]。

# condaconda install -c conda-forge jupyterlab
# pippip install jupyterlab
# pipenvpipenv install jupyterlabpipenv shell

个人推荐使用 Conda 的方式安装。

启动

进入到你想要使用 JupyterLab 的目录下,执行命令:

Jupyter lab

即可启动。

Token 的用途是确认身份,在你打开新标签时需要输入。

介绍

界面:

其中,左边栏(command + B)从上到下默认包含:

•文件浏览器•正在运行的 kernel 列表

•可以批量关闭 kernel

•命令板 (command/ctrl + shift + C)

••Cell 工具和已经打开的标签页

类型

JupyterLab 中有如下的 block 类型[9]:

•Notebooks 笔记本,同Jupyter Notebook•File browser 文件浏览器•Terminal 终端•Text Editor 文件编辑器•Kernels 内核•Output 输出

Notebook 基本功能

JupyterLab 中的 Notebook 和 Jupyter Notebook 中的使用方法一样。

Cell 类型

每一个 Notebook 就是一个kernel,在其中可以包含多个 cell。

Cell 的类型有三种,分别为:markdown,code 和 row

运行 cell 的快捷键是:shift + command,大概会你用到最多次的一个快捷键。

选择 cell 之后,点击空白处,按下m键,代表转为markdown cell,y键代表转为code cell,同理r键代表转为row cell。

快捷键忘记了也没有关系,去命令板查一下就行:

自动补全

与大多数本地 IDE 相同,输入部分代码之后按 tab 键,即可自动补全。Jupyter Lab 中的自动补全显示比之前 Jupyter Notebook 的要友好,通过不同的颜色和图标。显示出了补全的类型。

问号查看详细文档

在函数或变量等后面添加一个问号(?),执行之后,即可查看对应的详细文档:

使用两个问号(??),会显示详细源代码信息:

Magic Code

IPython的一些特殊命令(不是内置于 Python 本身)被称为“魔术”命令。魔术命令是以百分号%为前缀的任何命令。

%matplotlib

最常用的魔法命令,大概就是 %matplotlib[10]了。它用于指定 matplotlib 的后端(backend)。通常我们使用:

%matplotlib inline

代表使用 inline作为后端,直接在 Notebook 中内嵌图片,并且可以省略掉 plt.show() 这一步骤。

%timeit

%timeit 函数检查任何 Python 语句的执行时间,例如:

run

你可以使用 %run 命令,在Notebook中运行任意的Python文件。例如:

%run add.py

还有其他一些常用命令,例如 %debug、%load_ext 和 %pwd,完整命令可以参考页面[11]。

快捷键

熟悉使用快捷键可以有效的帮我们提升效率,下面表格是一些常用快捷键的汇总图,可以先浏览一遍,看看自己经常会用的是什么:

格来源以及下载地址[12]:https://blog.ja-ke.tech/2019/01/20/jupyterlab-shortcuts.html

你也可以直接在设置中查看或修改相应的快捷键。

制作 PPT

你还可以直接通过 Notebook 制作 一份网页版的 PPT,如果你的演示文稿中包含大量的代码,这将是一个不错的选择。

操作如下[13]:

1.打开一个 NoteBook,例如 Presentation.ipynb

2.选择左侧的 Cell Tool 标签页     3.选择需要展示的 Cell,设置其类型为Slide

4.转化并运行 Presentation.ipynb: jupyter nbconvert Presentation.ipynb --to slides --post serve

一个PPT就制作完成啦,显示效果如下:

此外,如想要回到原来的Jupyter Notebook 也是可以的,只需要将链接后面的 Lab 改为 Tree。

如下:

JupyterLab 独有的实用功能

灵活多窗口视图

如果你使用VSCode这样强大的IDE,Jupyter Notebook 中最不令人满意的一点,就是它只支持单一的文件视图。如果你想要在一个页面上,同时使用Notebook和终端,或者想要再右侧预览markdown文件,Notebook都没有支持。但是,Jupyter Lab 具有灵活的窗口视图功能,使得上述需求能够实现。

通过拖拽的方式,可以自由的添加视图:

可以将输出的图片作为单独窗口查看:

于 markdown 文件,可以点击右键显示菜单,选择预览进行查看。

另外一个独特的功能是,你可以执行文本中的代码块。

例如,在markdown文档中,有一段Python代码,可以右击,在菜单中选择新建一个console。点击代码片段任意位置之后执行(Shift+Center):

展开和收缩Cell

我们注意到每一个Cell和Output左边都有一个蓝色的线,点击该蓝线,可以收拢或者展开,如果输出内容很多或者我们暂时不关心一些cell的内容时,就可以将其收拢起来。

拖拽 Cell

JupyterLab 非常灵活的第一点是,每一个Cell都是可以拖拽的,你不仅仅可以在单个文件内进行拖拽,还是在文件间进行拖拽,它会自从复制cell都另一个文件中。

主题

JupyterLab 自带黑白两种主题,和多种文本高亮主题。在设置菜单下即可设置主题。我们也可以更加自己的喜好,更换其他的主题。

支持多种类型文件

Jupyter Lab 对不同类型的文件支持也很完善。例如 JSON 文件,csv 文件和图片文件。

插件

通 VSCode一样,JupyterLab 也可以安装各类插件(extensions)。安装合适的插件,能够使你的效率提高很多。

JupyterLab 的插件是 npm 安装包。所以按照 JupyterLab 的插件,需要提前按照好 Node.js。

安装命令:

    conda install -c conda-forge nodejs

或者 (Mac Only):

    brew install node

完成之后,有两种方式进行插件的安装:

1.通过开启 Extension Manager 来安装和管理插件2.通过执行命令的方式安装。

如果使用第一种方式,需要手动的开启 Extension Manager: 在设置中选择高级设置 (command+逗号 ),再选择Extension Manager一栏,修改设置为 true:

{    "enabled": true}

设置成功之后,即可在走侧边栏中看到插件选项卡,可以查看已经按照的插件和探索其他未安装的插件。

Awesome jupyterlab extension list

目前,社区中,已经有很多优秀的插件可以使用,如果你自己一个个的去检索寻找非常麻烦,所以我建立了一个目前最完整的实用列表:https://github.com/Yogayu/awesome-jupyterlab-extension。列表中,包含简单的介绍,还有插件的效果展示图。因此,你能很方便的索引到自己需要的插件。

在本文中,重点介绍一些常用的插件。

Github Extenion

安装命令:

jupyter labextension install @jupyterlab/github

该扩展,会在左侧区域添加一个 Github 浏览器选项卡。你可以浏览 GitHub 上的内容,仓库等等。也可以直接打开仓库中 JupyterLab 支持的文件。如果文件是 Notebook 类型,你直接直接运行,无需下载到本地,非常的方便。

输入 GitHub 用户名,即可查看其下所有仓库内容。

直接打开 Notebook 文件,即可在本地查看和运行远程 Notebook:

Jupyter Git

Jupyter Git 是 JupyterLab 中的 Git图形化管理工具。安装之后,可以在 git标签页,查看对应的文件修改情况和版本历史等信息。类似于VSCode的Git管理工具。( 是的,我们的 JupyterLab 越来越像 VSCode 了 : )

安装命令:

jupyter labextension install @jupyterlab/gitpip install jupyterlab-gitjupyter serverextension enable --py jupyterlab_git

使用:

Jupyterlab-toc

顾名思义,该插件可以自动生成文件内容目录。

安装命令:

jupyter labextension install @jupyterlab/toc

成功之后,即可以点击目录标签页,查看文档目录:

Jupyterlab-drawio

Jupyterlab-drawio 是一个在绘图插件,它将drawio / mxgraph独立集成到了 jupyterlab 中。

安装命令:

jupyter labextension install jupyterlab-drawio

安装成功之后,在启动面板即可以选择 Diagram 类型文件。

Jupyterlab_voyager

Voyager是一种数据可视化工具,可以自动和手动的生成图表。用来查看数据的基本分布信息,十分方便。

安装命令:

jupyter labextension install jupyterlab_voyager

安装之后,选择CSV或者JSON文件,右击选择 open with voyager,即可使用:

安装其他语言的 Kernel

前面我们说到 JupyterLab 支持多种语言,所以我们只需在 https://github.com/jupyter/jupyter/wiki/Jupyter-kernels 列表上找对对应的语言,安装其 Kernel 就可以使用。

这里我们以 R 和 Julia 为例。

安装 R Kernel

安装文档: https://irkernel.github.io

1.安装 R 下载地址:https://cran.r-project.org/mirrors.html 清华大学镜像源:https://mirrors.tuna.tsinghua.edu.cn/CRAN/2.在终端中运行 R, 运行命令:

The packages (' IRkernel)IRkernel: : installspec ()

1.或者直接使用 conda install -c r r-essentials 安装一些必备的包。

安装 Julia Kernel

安装文档: https://github.com/JuliaLang/IJulia.jl

1.安装 Julia[14]2.打开 Julia 之后,运行命令

using PkgPkg.add("IJulia")

完成之后即可在 JupyterLab 中新建对应语言的Notebook。

如果想要在同一个Notebook中运行不同的语言,可以参考项目:sos-notebook[15]。

Notebook 资源推荐

•首推官方资源列表[16]:https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks

最后,特别推荐一些书籍和课程的 Notebook:

•The Python Data Science HandBook[17]: https://github.com/jakevdp/PythonDataScienceHandbook•Hands-on the Machine Learning with Scikit-Learn and TensorFlow[18] : https://github.com/ageron/handson-ml•the Deep Learning with Python[19]: https://github.com/fchollet/deep-learning-with-python-notebooks•UC Berkeley Data 100[20]: https://github.com/DS-100/textbook

还有很多很多其他有趣的 Notebook,就等大家自己去探索,或者你可以自己写一个系列啦。

总结

最后,一起来回顾下本文内容吧:

看完之后,是不是觉得 JupyterLab 可以成为你的主力数据分析 IDE 了呢?

References

[1] ENGLISH VERSION: http:/data2art.com/jupyterlab-en.html
[2] 100种多种语言: https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
[3] ^1: https://blog.jupyter.org/jupyterlab-is-ready-for-users-5a6f039b8906
[4] ^1: https://blog.jupyter.org/jupyterlab-is-ready-for-users-5a6f039b8906
[5] "A gallery of interesting Jupyter Notebooks": https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks
[6] 《Teaching and Learning with Jupyter》: https://jupyter4edu.github.io/jupyter-edu-book/
[7] JupyterLab: https://jupyter.org/try
[8] 安装: https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html
[9] block 类型: https://github.com/jupyterlab/jupyterlab-demo/tree/master/slides
[10] %matplotlib: https://ipython.readthedocs.io/en/stable/interactive/plotting.html
[11] 参考页面: https://ipython.readthedocs.io/en/stable/interactive/magics.html
[12] 表格来源以及下载地址: https://blog.ja-ke.tech/2019/01/20/jupyterlab-shortcuts.html
[13] 操作如下: https://github.com/jupyterlab/jupyterlab/issues/5018#issuecomment-485842330
[14] 安装 Julia: https://julialang.org/downloads/
[15] sos-notebook: https://vatlab.github.io/blog/post/sos-notebook/
[16] 首推官方资源列表: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks
[17] The Python Data Science Handbook: https://github.com/jakevdp/PythonDataScienceHandbook
[18] Hands-on the Machine Learning with Scikit-Learn and TensorFlow: https://github.com/ageron/handson-ml
[19] the Deep Learning with Python: https://github.com/fchollet/deep-learning-with-python-notebooks
[20] UC Berkeley Data 100: https://github.com/DS-100/textbook

JupyterLab 介绍 及简单教程相关推荐

  1. ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础 ...

  2. Git和Github简单教程

    网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章主要的目标是用较少的时间学习Git和Gi ...

  3. ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 标签助手 上一章节我们介绍了视图导入,学习了 ...

  4. wcf简单教程(10) ajax调用,wcf简单教程(10) ajax调用

    wcf简单教程(10) ajax调用 [2021-02-11 16:23:59]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&q ...

  5. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...

  6. ASP.NET Core 基础教程 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 基础教程 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 是对 ASP.NET 有重大意义的一次重新设计.本章节我们将介绍 A ...

  7. keras构建卷积神经网络_通过此简单教程学习在网络上构建卷积神经网络

    keras构建卷积神经网络 by John David Chibuk 约翰·大卫·奇布克(John David Chibuk) 通过此简单教程学习在网络上构建卷积神经网络 (Learn to buil ...

  8. OpenGL ES 简单教程

    OpenGL ES 简单教程 2014-04-24 13:35 佚名 apkbus 字号:T | T 什么是OpenGL ES?OpenGL ES (为OpenGL for Embedded Syst ...

  9. python在数据分析的应用_Python运用于数据分析的简单教程

    这篇文章主要介绍了Python运用于数据分析的简单教程,主要介绍了如何运用Python来进行数据导入.变化.统计和假设检验等基本的数据分析,需要的朋友可以参考下 我这里来分享一下如何通过Python来 ...

最新文章

  1. 读书笔记白帽子讲web安全
  2. java中队列链表栈的作用_Java用链表实现栈和队列
  3. 命主属性是水什么意思_涧下水命是什么水 涧下水命的含义(图文)
  4. oracle 删除数据 快慢,记录一下Drop表空间的速度
  5. WPF开源项目:AIStudio.Wpf.AClient
  6. python根据矩阵数值大小涂上不同深浅颜色
  7. [HDU5727]Necklace(二分图最大匹配,枚举)
  8. ARCGIS 二次开发可以参考的资源(长期更新)
  9. 【Irrlicht Engine笔记】test4-movement
  10. 8、二叉树的下一个节点(Python)
  11. W3school和W3Cschool的区别
  12. EPS2008土方计算操作简要说明
  13. SQL语句 —— 查询某天创建的数据(精确到日)
  14. 企业新站,如何建立外链,提高预期排名?
  15. 企业邮箱是什么?企业邮箱有什么好处?企业邮箱域名怎么设置?
  16. Filebeat+Kafka+Logstash+ElasticSearch+Kibana搭建完整版
  17. http client的英文文档 牛逼
  18. 用view-source:查看网页源代码
  19. 深度学习--FAISS向量数据库
  20. 创龙科技Zynq-7010/20工业开发板(双核ARM Cortex-A9+A7)-性能及参数资料

热门文章

  1. 文本自动摘要任务的初步总结
  2. css3 transform transition 动画效果
  3. SQL server 2008卸载出错
  4. 浅谈功能测试用例模板设计
  5. 浏览器内核-渲染引擎、js引擎
  6. 《吊打面试官》系列-ConcurrentHashMap HashTable
  7. 参数在c语言中,C语言函数调用和参数传递
  8. Unity中将图片改为支持透明背景模式
  9. uniapp微信小程序开发如何解决input框或者(textarea)框输入时界面被顶起,输入法遮盖输入框的问题?
  10. 关于错误: 找不到或无法加载主类