好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

【Jupyter Notebook系列】2. 使用技巧

1. 安装与使用(安装,配置虚拟环境,windows远程连接 Linux 的jupyter)

2. 使用技巧(快捷键,多行输出,多光标操作,Unix系统命令的使用,查看输入输出历史,保存记录点与分享,抑制文末输出,图片输出,多环境kernel切换)

3. 魔法函数(查询,运行外部程序,计时,加载文件,变量管理调试,shell交互,图片的显示,查询环境变量,显示运行内核函数,kernel切换)

4. 插件的安装使用(代码折叠,添加目录,变量监控,代码格式化,运行时间统计,自动补全,自动保存,运行结束提醒)

5. 主题的安装更换(主题颜色背景,字体字号大小,工具条可见,画图风格设置)

6. 更高级的配置

0、前言

Jupyter Notebook 是一个在线编辑器,可以在网页上编辑程序,在编辑的过程中,每次编辑一行代码就可以运行一行代码,运行的结果也可以显示在代码的下方,方便查看。当所有的程序编写和运行完毕之后,还可以直接把编辑和运行之后的所有信息保存在文件中。

1、介绍两种模式

1.1 模式1:命令模式 command mode

可以对 cell 等进行操作,快捷键对应于命令模式的快捷键

1.2 模式2:编辑模式 edit mode

可以对代码文本进行操作,快捷键对应于编辑模式的快捷键

1.3 两种模式的切换

在一个 cell 中按下 enter 就进入 edit mode ,按下 Esc 进入 command mode 。

2、常用快捷键

2.1 命令模式下的快捷键(按 Esc 进入命令模式)

F :查找并且替换

ctrl-shift-f :打开命令配置(界面中的小键盘也可以启动)

ctrl-shift-p :打开命令配置(界面中的小键盘也可以启动)

输入你想要的运行的命令即可搜索,比如我这里将一个 cell 移动到它下一个 cell 的下面:在一个 cell 中(在 command 模式下),然后按下  Ctrl + Shift + P  ,输入  move  ,键盘方向键选择要执行的命令即可,然后按下回车即可执行。

Enter :进入编辑模式 P :打开命令配置 Shift-Enter :运行代码块,选择下面的代码块 Ctrl-Enter :运行选中的代码块 Alt-Enter :运行代码块并且插入下面 Y :把代码块变成代码(把整个 cell 变成代码) M :把代码块变成标签(把整个 cell 变成Markdown) R :清除代码块格式 1 :把代码块变成heading1 2 :把代码块变成heading2 3 :把代码块变成heading3 4 :把代码块变成heading4 5 :把代码块变成heading5 6 :把代码块变成heading6 K :选择上面的代码块 上 :选择上面的代码块 J :选择下面的代码块 下 :选择下面的代码块 Shift-上 :扩展上面选择的代码块(是多选的含义,把现在的包含进去选择上一个) Shift-K :扩展上面选择的代码块(是多选的含义,把现在的包含进去选择上一个) Shift-下 :扩展下面选择的代码块(是多选的含义,把现在的包含进去选择下一个) Shift-J :扩展下面选择的代码块(是多选的含义,把现在的包含进去选择下一个) A :在上面插入代码块 B :在下面插入代码块 X :剪切选择的代码块 C :复制选择的代码块 Shift-V :粘贴到上面 V :粘贴到下面 Z :撤销删除 DD :删除选中单元格 Shift-M :合并选中单元格,如果只有一个单元格被选中 Ctrl-S :保存并检查 S :保存并检查 L :切换行号(在这个cell中显示行号) O :选择单元格的输出(打开或者关闭选中cell的输出,可以控制cell) Shift-O :切换选定单元的输出滚动(打开或者关闭cell的输出是否可以滚动,不可滚动时全部显示) H :显示快捷键(在没有使用Keyboard shortcut editor拓展的时候有效) I :中断服务 O :重启服务(带窗口) Esc :关闭页面 Q :关闭页面 Shift-L :在所有单元格中切换行号,并保持设置 Shift-空格(Space) :向上滚动 空格(Space) :向下滚动 Ctrl-Home :跳到第一个 cell Ctrl-End :跳到最后一个 cell Shift-鼠标选择 :选择当前 cell 到选中 cell 的所有 cell

2.2 编辑模式下的快捷键(按 Enter 进入命令模式)

Tab :代码完成或缩进

Shift-Tab :工具提示

Ctrl-] :缩进

Ctrl-[ :取消缩进

Ctrl-A :全选

Ctrl-Z :撤销

Ctrl-/ :评论

Ctrl-D :删除整行

Ctrl-U :撤销选择

Insert :切换重写标志

Ctrl-Home :跳到单元格起始处

Ctrl-上 :跳到单元格起始处

Ctrl-End :跳到单元格最后

Ctrl-下 :跳到单元格最后

Ctrl-左 :跳到单词左边

Ctrl-右 :跳到单词右边

Ctrl-删除 :删除前面的单词

Ctrl-Delete :删除后面的单词

Ctrl-Y :重做

Alt-U :重新选择

Ctrl-M :进入命令行模式

Ctrl-Shift-F :打开命令配置

Ctrl-Shift-P :打开命令配置

Esc :进入命令行模式

Shift-Enter :运行代码块,选择下面的代码块

Ctrl-Enter :运行选中的代码块

Alt-Enter :运行代码块并且插入下面

Ctrl-Shift-减号 :在鼠标处分割代码块

Ctrl-S :保存并检查

下 :光标下移

上 :光标上移

3、多行输出

一般情况下一个  Cell 后只能输出一个结果

若想要实现多行输出,请在 cell 开头添加以下代码

 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = 'all' # 默认为'last',即输出最后一个结果  

4、 ? 的使用

在使用过程中,我们难免会遇到一些我们并不清楚语法格式,查找官方文档是一种解决方案,不过在 Jupyter Notebook 里内置了快速链接官方文档的用法(类似 Stata 的help命令),在你需要查找的函数(或库名)前敲入 ? 就可浏览快速语法说明。

4.1 单个 ? :快速查看文档,输出帮助提示,快速语法说明

python自带的函数 help() 可以获得函数对应的docstring,用iPython的 ? 可以得到相同的结果:

? 几乎可以查看任何信息,包括对象的方法,甚至对象本身

对于自己编写的函数, ? 同样适用,但是前提是函数包含一个docstring

4.2  ?? :快速查看源码

如果没有显示源码的话,说明这个函数不是用Python写的,这种情况大多发生在Python的自建函数。

5、TAB:自动补全

6、多光标操作

Jupyter Notebook 支持多光标操作,与 Sublime Text 类似。按住  Alt  拖拽鼠标选定操作区域后,再按一下 右方向键→ 即可。点击任何位置返回单光标操作。

7、jupyter的cell可以作为unix command使用

IPython中可以使用 Shell 指令,避免多个窗口切换。

具体方法为:在 unitx command 前面加入一个感叹号 !

查看python版本: !python --version

运行python文件: !python myfile.py

查询安装的库: !pip list | grep pandas

并且形如 !ls 、 !pwd 的输出可以通过赋值保存下来(windows系统请用 !dir 这个命令)

 contents = !ls directory = !pwd  

用 {var} 可以把Python的对象在Shell指令中运行

 message = "hello from Python" !echo {message}  

但是 !cd 并不能改变文件夹的路径,需要使用 %cd 来进行更换

8、查看输入输出历史

输入历史

方法一:In返回输入列表

In 是一个包含了历史输入的list, In[0] 默认为空字符串, In[1] 代表第一个输入

单个下划线 _ 包含了上一次的输出,两个下划线 __ 包含了上上次的输出,以此类推,跳过没有输出的cell

 print(In[1])  

方法二 %history查看输入历史

 %history -n 1-8  

表示查看1-4次的输入   冒号前面是第几次输入

输出历史

可以用两种方式查看输出

方法一: Out 调用输出历史

Out 返回一个含有输出的命令的序号及其输出组成的字典,两者皆可以通过索引获取元素。

方法二:使用下划线表示输出

_ 表示上一个输出

__ 表示前两个输出

_num 表示 Out[num]

9、在Jupyter中设置link,需要设置两部分

要跳到的位置(the destination) 需要在要跳转到的位置添加下面语句:

 <a id='the_destination'></a>1  

这里的id取值任意赋值,下面在添加链接时要用

需要添加链接的文字(an internal hyperlink to the destination),即点击该处可以跳转到the destination,在需要添加链接的文字后面加入:

 [需要添加连接的文字](#the_destination)1  

下面是一个例子:源码:效果图:

10、保存记录点

Jupyter Notebook  还有一个很酷的功能:记录点。你可以为当前的 notebook 文件创建一个记录点,保存当前文件的所有状态。创建记录点之后,你可以随时返回到当前的状态,撤销这期间做出的任何修改。

要创建一个新的记录点,你只需要在菜单栏上选择  File (文件)->  Save and Checkpoint (保存记录点)即可。点完之后,你就会在标题旁看到  Checkpoint  保存的提示:

如果你想要返回到之前的  Checkpoint ,你只需要在菜单栏上选择 File (文件)->  Revert to Checkpoint (返回到记录点),并点击对应的记录点的时间戳即可。

11、分享文档

使用  Jupyter Notebook 的一个好处是可以把 .ipynb 格式的文件另存为其他格式,再分享其他人。

分享 notebook 最简单的方式是直接使用 notebook 文件(.ipynb)。不过对于那些不使用 Jupyter 的人来说,你也可以这么做:

使用菜单项  File > Download as > HTML  将 notebook 转换成 HTML(python也可以  他会自动吧In、Out等注释掉变成所有cell的穿行)。

使用 gist 或 github 分享 notebook,它们都会对 notebook 进行渲染展示。

如果你上传 notebook 到一个 github 仓库,你可以使用十分便利的mybinder服务来允许第三者半小时时间以交互性身份访问你的仓库。

安装jupyterhub, 当你组织一个小型课程或研讨会没有心思关心学生的机器状况时,这是非常方便的。

将 notebook 保存到比如 dropbox 中,然后将链接放到nbviewer. nbviewer将会渲染你存储在任何地方的notebook.

使用  File > Download as > PDF  菜单将 notebook 保存为一个 PDF。如果你打算这么做,强烈推荐你阅读 Julius Schulz 非常棒的一篇文章Making publication ready Python notebooks.

使用 Pelican 搭建一个关于数据科学博客( 译者注:可在这里查看译文 )

12、抑制末尾函数输出

当我们绘制图像的时候,有时图像上方会出现一个函数的输出,比如下面这个

如果不想要这行输出,可以直接在代码末加上一个分号。

13、图片视频音频等的输出

Notebook 以 HTML 的方式进行展示, cell  的输出也可以是  HTML ,所以事实上你可以返回任何东西:视频/音频/图像。

下面的例子我扫描图片文件,并输出它的缩略图。

 import os from IPython.display import display, Image display(Image('./1.jpg', width=100))  

14、做一个PPT

Damian Avila的 RISE 允许你从已有的一个 notebook 创建一个 powerpoint 风格的报告。

你可以通过 conda 安装 RISE:

 conda install -c damianavila82 rise  

或通过 pip:

 pip install RISE  

然后执行下面的代码安装并启用扩展:

 jupyter-nbextension install rise --py --sys-prefix jupyter-nbextension enable rise --py --sys-prefix 

查看更多关于【Jupyter Notebook系列】2. 使用技巧的详细内容...

  阅读:36次