您的位置:首页 > 其它

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

2021-01-04 21:52 302 查看

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


    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: