1. Jupyter Notebook 简介
Jupyter Notebook(以下简称 Jupyter)是一个基于 Web 应用程序的交互式计算平台,能够让用户创建和共享文学化代码、等式、可视化和说明性文档。Jupyter 通常用于数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等领域。
2. Jupyter Notebook 插件介绍
Jupyter 本身已经提供了很多常用的功能,例如代码补全、语法高亮、代码出错标红等。但是,为了更好地使用 Jupyter,我们可以通过安装插件来增强其功能性。下面是推荐的 10 个好用到爆的 Jupyter Notebook 插件。
2.1 jupyter_contrib_nbextensions
这是一个非常实用的插件,它包括了几十个工具和样式,如目录、跳转、表格、模板等。这个插件的集成进入可以本地使用 Jupyter Notebook。 首先,你需要安装 pip 工具,并输入以下命令:
!pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install
然后在 Jupyter 页面的Notebook 配置页面中启用 Extension 选项,并勾选需要使用的 Extension 即可使用。
2.2 jupyterthemes
该插件可以使Jupyter Notebook的界面更加美观,并且可以切换主题。安装方法如下:
!pip install jupyterthemes
然后,在终端输入以下命令来更换主题:
jt -t themename -f font -fs fontsize
其中,themename为主题名称,font为字体,fontsize为字体大小。
2.3 autosave
这个插件的功能是定时自动保存当前 Notebook,防止因为意外原因导致的数据丢失。安装方法如下:
!pip install autosave
使用方法:
%autosave [interval] # interval 是自动保存的时间间隔(以秒为单位),如果不添加,则默认为 120(秒)
2.4 splitcell
该插件可以将一个单元格拆分成多个单元格,方便用户进行不同程度的调试。 使用方法如下:
!pip install splitcell
然后,在 Jupyter Notebook 的工具栏上会出现“Split Cell”按钮,点击该按钮可以将单元格拆分为多个子单元格。
2.5 jupyter_nbextensions_configurator
该插件可以更改 nbextensions 配置参数和载入预制装置。NBextensions 是 jupyter_contrib_nbextensions 库的一部分,但是通过该插件,用户可以配置所有插件,方便操作。 安装方法如下:
!pip install jupyter_nbextensions_configurator
然后,重启 Jupyter Notebook 后,点击 Notebook 后面出现的 Nbextensions 标签,即可进行插件的配置。
2.6 toc2
这个插件可以自动生成 Notebook 的目录,方便文档的查看和导航。 安装方法如下:
!pip install toc2
使用方法:
%%toc # 默认toc目录会被默认生成在 Notebook 的顶部
你可以定制目录的标题和位置,将 toc 作为 Notebook 中的一个 Cell(cell title 是「Table of Contents」)或将其作为单独的 notebook cell。
2.7 nbpresent
该插件可以轻松创建与共享演示文稿,同时也提供了一些漂亮的模板。 安装方法如下:
!pip install nbpresent
使用方法:
from nbpresent import Present # 引入 Present 模板
Present('notebook.ipynb') # 选择并打开你的 Notebook
2.8 notify
该插件可以在运行 Jupyter Notebook 时,当代码执行完成时发送通知给你。 安装方法如下:
!pip install jupyternotify
使用方法:
%load_ext jupyternotify
%%notify
code_here
运行后,会发出一个系统通知,告诉你代码已经编译完成。如果不需要鼠标滚动到终端来看消息,也可以通过使用 notify 的 Notebook 内置浏览器通知系统来进行通知。
2.9 codefolding
该插件可折叠代码块并提供代码折叠,使代码阅读更为便捷。 安装方法如下:
!pip install codefolding
使用方法:
%%javascript
// 在 notebook 内运行以下命令实现 %codefolding 魔术命令
IPython.load_extensions('codefolding/main');
require(['notebook/js/codecell'], function(codecell) {
codecell.CodeCell.options_default.highlight_modes['magic_text/x-python'] = {'reg':[/^%%sql/]};
Jupyter.notebook.events.one('kernel_ready.Kernel', function(){
Jupyter.notebook.get_cells().map(function(cell){
if (cell.cell_type == 'code'){
cell.options_default.cm_config.lineWrapping = true;
cell.options_default.cm_config.foldGutter = true;
cell.options_default.cm_config.extraKeys["Ctrl-Q"] = function(cm){cm.foldCode(cm.getCursor());};
cell.code_mirror.setOption('lineWrapping', true);
cell.code_mirror.setOption('foldGutter', true);
cell.code_mirror.setOption('extraKeys', {"Ctrl-Q": function(cm){cm.foldCode(cm.getCursor());}});
}
});
});
});
上面命令可以将 codefolding 插件添加到 ipython 中。现在输入以下命令,即可将代码块折叠。
# 具体折叠语法为:
#%% [codes]:print something# folding block
print('I am in the folding block')
2.10 collapsible_headings
该插件可以折叠 Markdown 格式的标题行,可以让用户更方便地浏览 Notebook 的结构。 安装方法如下:
!pip install collapsible_headings
然后在 Notebook 的 TOC 页面即可看到折叠效果,也可以自己通过设置实现相应效果。
3. 结语
这就是我们推荐的 10 个 Jupyter Notebook 插件,这些插件可以让你更高效地使用 Jupyter Notebook,并且更好地管理自己的代码和数据。 并不是每个插件都适用于所有人,但如果某个插件能够让你的工作更方便,那么它就值得使用。