本文介绍了一些有关改善Jupyter Notebook体验的简单技巧,并介绍了有用的快捷方式,添加主题,自动生成的目录等。
介绍
如今,Jupyter Notebook可能是解决Python中的机器学习/数据科学任务的最常用的环境。
Jupyter Notebook是一个客户端-服务器应用程序,用于在浏览器中运行笔记本文档。笔记本文档是能够同时包含代码和富文本元素(如段落,方程式等)的文档。
在本文中,我将引导您完成一些简单的技巧,以提高Jupyter Notebook的使用体验。我们将从有用的快捷方式开始,最后添加主题,自动生成的目录等。
捷径
快捷键对于加速编写代码非常有用。现在,我将向您介绍一些我发现在Jupyter中最有用的快捷方式。
与Jupyter Notebook交互的方法有两种:命令模式和编辑模式。有些快捷方式仅在一种模式或另一种模式下有效,而另一些快捷方式在两种模式下均通用。
在这两种模式下通用的一些快捷方式是:
Ctrl Enter:运行所有选定的单元格
Shift Enter:运行当前单元格并移动下一个单元格
Ctrl s:保存笔记本
为了进入Jupyter命令模式,我们需要按Esc键,然后按以下任意命令:
H:显示Jupyter Notebook中所有可用的快捷方式
Shift 向上/向下箭头:同时选择多个笔记本单元(选择多个单元后按Enter将使它们全部运行!)
A:在上方插入一个新单元格
B:在下面插入一个新单元格
X:剪切所选单元格
Z:撤消删除单元格
Y:将单元格的类型更改为Code
M:将单元格类型更改为Markdown
空间:向下滚动笔记本
Shift 空格键:向上滚动笔记本
为了进入Jupyter编辑模式,我们需要依次按Enter和以下任何命令:
标签:代码竞争建议
Ctrl ]:缩进代码
Ctrl [:目标代码
Ctrl z:撤消
Ctrl y:重做
Ctrl a:全选
Ctrl Home:将光标移到单元格开始
Ctrl End:将光标移到单元格的末尾
Ctrl 左:将光标向左移动一个单词
Ctrl 右键:将光标向右移动一个字
Shell命令和软件包安装
没有多少用户意识到这一点,但是可以通过在单元格的开头添加感叹号的方式在Jupyter笔记本单元格中运行Shell命令。例如,使用!ls运行单元 将返回当前工作目录中的所有项目。用!pwd运行单元 将打印出当前目录的文件路径。
同样的技巧也可以应用于在Jupyter笔记本中安装Python软件包。
代码语言:javascript复制!pip install numpy
Jupyter主题
如果您有兴趣更改Jupyter笔记本的外观,则可以安装具有不同主题集合的软件包。默认的Jupyter主题如图1所示。在图2中,您将看到我们如何个性化其外观。
代码语言:javascript复制!pip install jupyterthemes
我们可以运行以下命令来列出所有可用主题的名称:
代码语言:javascript复制!jt -l
# Cell output:
# Available Themes:
# chesterish
# grade3
# gruvboxd
# gruvboxl
# monokai
# oceans16
# onedork
# solarizedd
# solarizedl
最后,我们可以使用以下命令选择一个主题(在本示例中,我决定使用solarized1主题):
代码语言:javascript复制!jt -t solarizedl
如果您希望随时回到原始的Jupyter笔记本主题,则可以运行以下命令并刷新页面。
代码语言:javascript复制!jt -r
Jupyter笔记本扩展
笔记本扩展可以用于增强用户体验并提供多种个性化技术。
在此示例中,我将使用 nbextensions 库来安装所有必需的小部件(这一次,我建议您首先通过终端安装软件包,然后打开Jupyter笔记本)。该库利用不同的Javascript模型来丰富笔记本前端。
代码语言:javascript复制! pip install jupyter_contrib_nbextensions
! jupyter contrib nbextension install --system
一旦 nbextensions 安装,你会发现,有您Jupyter笔记本电脑主页(下图),一个额外的标签。
通过单击Nbextensions选项卡,将为我们提供可用小部件的列表。就我而言,我决定启用图4所示的选项。
我最喜欢的一些扩展是:
1.目录
从markdown标题自动生成目录。
2.片段
用于加载公共库并创建示例图的示例代码,您可以将它们用作数据分析的起点(下图)。
3.腹地
Jupyter Notebook的代码自动补全(下图)。
该 nbextensions 库提供了许多其他的扩展除了这三个,所以我鼓励你实验和测试任何其他可以是感兴趣的为您服务!
降价选项
默认情况下,Jupyter Notebook单元中的最后一个输出是唯一打印的输出。相反,如果我们希望自动打印所有命令而不必使用 print(),则可以在笔记本的开头添加以下代码行。
代码语言:javascript复制from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
此外,可以通过将文本括在美元符号($)之间来在Markdown单元中编写LaTex。
笔记本幻灯片
通过转到查看->单元格工具栏->幻灯片 ,然后为笔记本中每个单元格选择幻灯片配置,可以创建Jupyter笔记本的幻灯片演示文稿 。
最后,通过转到终端并键入以下命令,将创建幻灯片。
代码语言:javascript复制pip install jupyter_contrib_nbextensions
# and successively:
jupyter nbconvert my_notebook_name.ipynb --to slides --post serve
魔法
魔术是可用于执行特定命令的命令。一些示例是:内联绘图,打印单元的执行时间,打印运行单元的内存消耗等。
仅以%开头的魔术命令仅 将其功能应用于单元格的一行(放置命令的位置)。反而以2 %%开头的魔术命令 将应用于整个单元格。
使用以下命令可以打印出所有可用的魔术命令:
代码语言:javascript复制%lsmagic
由于微信公众号只能上传300帧的Gif图,所以我制作了很多无法上传,同学们可以自己尝试,全部代码已调试通,效果很棒。