原创 游薪渝 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]。
# conda
conda install -c conda-forge jupyterlab
# pip
pip install jupyterlab
# pipenv
pipenv install jupyterlab
pipenv 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 输出
JupyterLab 中的 Notebook 和 Jupyter Notebook 中的使用方法一样。
每一个 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[10]了。它用于指定 matplotlib 的后端(backend)。通常我们使用:
%matplotlib inline
代表使用 inline作为后端,直接在 Notebook 中内嵌图片,并且可以省略掉 plt.show() 这一步骤。
%timeit 函数检查任何 Python 语句的执行时间,例如:
你可以使用 %run 命令,在Notebook中运行任意的Python文件。例如:
%run add.py
还有其他一些常用命令,例如 %debug、%load_ext 和 %pwd,完整命令可以参考页面[11]。
熟悉使用快捷键可以有效的帮我们提升效率,下面表格是一些常用快捷键的汇总图,可以先浏览一遍,看看自己经常会用的是什么:
格来源以及下载地址[12]:https://blog.ja-ke.tech/2019/01/20/jupyterlab-shortcuts.html
你也可以直接在设置中查看或修改相应的快捷键。
你还可以直接通过 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。
如下:
如果你使用VSCode这样强大的IDE,Jupyter Notebook 中最不令人满意的一点,就是它只支持单一的文件视图。如果你想要在一个页面上,同时使用Notebook和终端,或者想要再右侧预览markdown文件,Notebook都没有支持。但是,Jupyter Lab 具有灵活的窗口视图功能,使得上述需求能够实现。
通过拖拽的方式,可以自由的添加视图:
可以将输出的图片作为单独窗口查看:
于 markdown 文件,可以点击右键显示菜单,选择预览进行查看。
另外一个独特的功能是,你可以执行文本中的代码块。
例如,在markdown文档中,有一段Python代码,可以右击,在菜单中选择新建一个console。点击代码片段任意位置之后执行(Shift+Center):
我们注意到每一个Cell和Output左边都有一个蓝色的线,点击该蓝线,可以收拢或者展开,如果输出内容很多或者我们暂时不关心一些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
}
设置成功之后,即可在走侧边栏中看到插件选项卡,可以查看已经按照的插件和探索其他未安装的插件。
目前,社区中,已经有很多优秀的插件可以使用,如果你自己一个个的去检索寻找非常麻烦,所以我建立了一个目前最完整的实用列表:https://github.com/Yogayu/awesome-jupyterlab-extension。列表中,包含简单的介绍,还有插件的效果展示图。因此,你能很方便的索引到自己需要的插件。
在本文中,重点介绍一些常用的插件。
安装命令:
jupyter labextension install @jupyterlab/github
该扩展,会在左侧区域添加一个 Github 浏览器选项卡。你可以浏览 GitHub 上的内容,仓库等等。也可以直接打开仓库中 JupyterLab 支持的文件。如果文件是 Notebook 类型,你直接直接运行,无需下载到本地,非常的方便。
输入 GitHub 用户名,即可查看其下所有仓库内容。
直接打开 Notebook 文件,即可在本地查看和运行远程 Notebook:
Jupyter Git 是 JupyterLab 中的 Git图形化管理工具。安装之后,可以在 git标签页,查看对应的文件修改情况和版本历史等信息。类似于VSCode的Git管理工具。( 是的,我们的 JupyterLab 越来越像 VSCode 了 : )
安装命令:
jupyter labextension install @jupyterlab/git
pip install jupyterlab-git
jupyter serverextension enable --py jupyterlab_git
使用:
顾名思义,该插件可以自动生成文件内容目录。
安装命令:
jupyter labextension install @jupyterlab/toc
成功之后,即可以点击目录标签页,查看文档目录:
Jupyterlab-drawio
Jupyterlab-drawio 是一个在绘图插件,它将drawio / mxgraph独立集成到了 jupyterlab 中。
安装命令:
jupyter labextension install jupyterlab-drawio
安装成功之后,在启动面板即可以选择 Diagram 类型文件。
Voyager是一种数据可视化工具,可以自动和手动的生成图表。用来查看数据的基本分布信息,十分方便。
安装命令:
jupyter labextension install jupyterlab_voyager
安装之后,选择CSV或者JSON文件,右击选择 open with voyager,即可使用:
前面我们说到 JupyterLab 支持多种语言,所以我们只需在 https://github.com/jupyter/jupyter/wiki/Jupyter-kernels 列表上找对对应的语言,安装其 Kernel 就可以使用。
这里我们以 R 和 Julia 为例。
安装文档: 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 安装一些必备的包。
安装文档: https://github.com/JuliaLang/IJulia.jl
1.安装 Julia[14]2.打开 Julia 之后,运行命令
using Pkg
Pkg.add("IJulia")
完成之后即可在 JupyterLab 中新建对应语言的Notebook。
如果想要在同一个Notebook中运行不同的语言,可以参考项目:sos-notebook[15]。
•首推官方资源列表[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 了呢?
[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