1. 介绍

Jupyter Notebook是当下解决Python中的机器学习/数据科学任务的最常用的环境之一。简单来说,Jupyter Notebook是一个客户端-服务器应用程序,用于在浏览器中运行能够同时包含代码和富文本元素(如段落,方程式等)的文档。

接下来,我们一起来学习一些关于Jupyter Notebook使用的简单技巧。我们将从有用的快捷方式开始,最后添加主题,自动生成的目录等。

2. 快捷键

快捷键对于加速编写代码非常有用。与Jupyter Notebook交互的方法有两种:命令模式和编辑模式。有些快捷方式仅在一种模式或另一种模式下有效,而另一些快捷方式在两种模式下均通用。

两种模式中都常见的一些快捷方式是:

  • Ctrl + Enter:运行所有选定的单元格
  • Shift + Enter:运行当前单元格并移动下一个单元格
  • Ctrl + s:保存笔记本

为了进入Jupyter命令模式,我们需要按Esc键,然后按以下任意命令:

  • H:显示Jupyter Notebook中可用的所有快捷方式
  • Shift +向上/向下箭头:同时选择多个笔记本单元(选择多个单元后按Enter将使它们全部运行!)
  • A:在上方插入一个新单元格
  • B:在下面插入一个新单元格
  • X:剪切选定的单元格
  • Z:撤消删除单元格
  • Y:将单元格的类型更改为Code
  • M:将单元格类型更改为Markdown
  • Space:向下滚动笔记本
  • Shift +Space:向上滚动笔记本

为了进入Jupyter编辑模式,我们需要依次按Enter和以下任何命令:

  • Tab:代码完整说明
  • Ctrl +]:增加缩进
  • Ctrl + [:减少缩进
  • Ctrl + z:撤消
  • Ctrl + y:重做
  • Ctrl + a:全选
  • Ctrl + Home:将光标移到单元格开始
  • Ctrl + End:将光标移到单元格的末尾
  • Ctrl +左键向左移动光标一词
  • Ctrl +右键:将光标向右移动一词

3. Shell命令和软件包安装

我们可以通过在单元格的开头添加感叹号的方式,在Jupyter笔记本单元格中运行Shell命令,目前只有极少数用户意识到这一点。例如,使用**!ls运行单元 ,将返回当前工作目录中的所有项目。用!pwd**运行单元,将打印出当前目录的文件路径。

同样的技巧也可以应用于在Jupyter笔记本中安装Python软件包。

!pip install numpy

4. Jupyter主题

此外,我们可以更改Jupyter笔记本的外观,则可以安装具有不同主题集合的软件包。默认的Jupyter主题类似于图中的主题。

jupyter实用数据分析 jupyter数据分析案例_Shell

我们可以将软件包直接安装在笔记本中:

!pip install jupyterthemes

我们可以运行以下命令来列出所有可用主题的名称:

!jt -l# Cell output:# Available Themes: #   chesterish#   grade3#   gruvboxd#   gruvboxl#   monokai#   oceans16#   onedork#   solarizedd#   solarizedl

最后,我们可以使用以下命令选择一个主题(在本示例中,我决定使用solarized1主题):

!jt -t solarizedl

只要你运行了此命令然后也刷新了页面,Jupyter笔记本将如图所示。

jupyter实用数据分析 jupyter数据分析案例_jupyter_02

如果你想随时返回到原始的Jupyter笔记本主题,则可以运行以下命令并刷新页面。

!jt -r

5. Jupyter笔记本扩展

笔记本扩展可以用于增强用户体验并提供多种个性化技术。在此示例中,使用 nbextensions 库来安装所有必需的小部件(在这里,建议首先通过终端安装软件包,然后打开Jupyter笔记本)。nbextensions库利用不同的Javascript模型来丰富Jupyter笔记本的前端。

!pip安装jupyter_contrib_nbextensions!jupyter contrib nbextension安装--system

只要你把 nbextensions安装成功,你会发现,在你的Jupyter笔记本电脑主页上会多出一个额外的标签Nbextensions

jupyter实用数据分析 jupyter数据分析案例_编程语言_03

通过单击Nbextensions选项卡,我们可以看到可用小部件的列表。在这里,我启用图所示的选项作为示例。

jupyter实用数据分析 jupyter数据分析案例_快捷方式_04

另外,我罗列了一些我最喜欢的扩展小部件如下所示:

  • Table of Contents

从markdown标题自动生成目录。

jupyter实用数据分析 jupyter数据分析案例_jupyter_05

  • Snippets

用于加载公共库并创建示例图的示例代码,您可以将它们用作数据分析的起点。

jupyter实用数据分析 jupyter数据分析案例_快捷方式_06

  • Hinterland

Jupyter Notebook的代码自动完成功能。

jupyter实用数据分析 jupyter数据分析案例_jupyter_07

除了上面列举的这三个, nbextensions 库提供了非常多的扩展小部件,你可以尝试勾选上不同的小部件,去探索其有趣的扩展功能!

6. 输出所有命令行

在默认情况下,Jupyter Notebook只会将单元格中最后一行命令作为输出行来输出结果。那么,如果我们希望Jupyter Notebook自动帮我们输出所有命令,而不必使用 print()逐条命令输出,则可以在代码的开头添加以下代码行。

from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"

此外,还可以通过将文本括在美元符号($)之间来在Markdown单元中编写LaTex。

7. 笔记本幻灯片

通过对Jupyter Notebook进行如下操作: View -> Cell Toolbar -> Slideshow ,然后为笔记本中的每个单元格选择幻灯片配置,可以创建Jupyter笔记本的幻灯片演示文稿 。

最后,通过转到终端并输入以下命令,便可以创建幻灯片演示文稿。

pip install jupyter_contrib_nbextensions# and successively:jupyter nbconvert my_notebook_name.ipynb --to slides --post serve

8. 魔鬼命令

python的魔术命令是Ipython在普通的python语法基础之上的增强功能,可用于执行某些特定命令,例如:内联绘图,打印单元格的执行时间,打印运行单元格的内存消耗等等。

同时,python魔法命令是以%作为前缀,仅以单个%符号作为开头,则作用于单行输入(放置命令的位置);如果以两个%%作为开头的魔术命令 ,则是将应用于整个单元格中。

使用以下命令可以打印出所有可用的魔术命令:

%lsmagic