Bruce Han的博客

不积跬步,无以至千里;不积小流,无以成江海。

0%

Jupyter Notebook简介

Jupyter Notebook是什么

Jupyter Notebook,是一个可以把代码、图像、注释、公式和做图于一体,实现可读性分析的灵活工具。

  • 延伸性好,支持多种编程语言
  • 完全免费
  • 便于演示

Notebook是用网页访问的,你可以在浏览器中编写和执行程序。并且可以在其它机器上远程调用它,这种环境也屏蔽了不同系统的显示差异。在分享示例代码的时候,也非常方便,完全不用再去考虑格式的问题。

如何安装Jupyter Notebook

很明显,首先需要确保你的电脑上已经安装了Python。

Anaconda

对于新用户而言,最简单的方法是使用Anaconda发行版来安装Python和Jupyter Notebooks。Anaconda会同时安装这两个工具,并且包含大多数常用的数据科学和机器学习的软件包。Anaconda下载

Pip方法

如果不愿意使用Anaconda,也可以使用pip安装。一般来说,如果你已经安装了最新的Python(下载),那么就已经有了pip了。如果没有,可以下载get-pip.py文件(下载),并在控制台命令窗口下安装pip:

1
python get-pip.py

pip安装好之后,继续安装Jupyter:

1
pip3 install jupyter

更具体的内容可以参考Jupyter Notebook的官方安装文档

开始上手

安装后,要运行只需在命令框输入以下命令jupyter-notebook即可。完成后,Jupyter notebooks会在你默认浏览器中打开。打开笔记本后,你会看到顶部有三个选项卡:Files、Running 和 Clusters。其中,Files 基本上就是列出当前文件夹中的所有文件,Running 是展示你当前打开的终端和笔记本,Clusters 是由 IPython 并行提供的。

image-20200228094201096

要打开一个新的 Jupyter 笔记本,点击页面右侧的「New」选项。你在这里会看到 4 个需要选择的选项:

  • Python3
  • Text File
  • Folder
  • Terminal

我们此时使用的是Python3,

在上图的下拉菜单中,我们主要会用到两种:

  • Code:不言而喻,就是我们写Python代码
  • Markdown:写文本的地方。可以插入图片、公式、文本,具有一套自己的语法。

下面介绍一些使用Jupyter的小窍门和技巧。

快捷键

通过快捷键可以提高工作效率,譬如最常用的Tab补全,在输入表达式时,只要按下tab键,当前命名空间中任何与已输入的字符串相匹配的变量(对象、函数)就会被找出来。Jupyter Notebooks 提供了两种不同的键盘输入模式——命令和编辑。命令模式是将键盘和笔记本层面的命令绑定起来,并且由带有蓝色左边距的灰色单元边框表示。编辑模式让你可以在活动单元中输入文本(或代码),用绿色单元边框表示。以分别使用 Esc 和 Enter 在命令模式和编辑模式之间切换。

进入命令模式后(此时,当前单元格处于非活动状态格),可以尝试一下快捷键:

  • a会在当前单元之上插入一个新的单元,b会在当前单元之下插入一个新单
  • 连续按两次d可以删除当前单元格
  • z撤销被删除的单元格
  • Shift + ↑或↓可选择多个单元格。在多选模式下,按住Shift+M合并选中的单元格
  • f会弹出「查找和替换」菜单

处于编辑模式时(在命令模式时,按Enter会进入编辑模式,当前单元格为活动状态):

  • Ctrl + Enter:运行当前单元格
  • Alt + Enter:运行当前单元格,并在下面添加一个新的单元格
  • Ctrl + Home:到达单元格起始位置
  • Ctrl + S:保存

如果要看键盘快捷键完整列表,可以在命令模式下按H或进入[Help>Keyboard Shortcuts」。

变量的完美显示

在Jupyter Notebook中,把变量名称或没有定义输出结果的语句放在Cell的最后一行,无需print语句,Jupyter也会显示变量值。当使用Pandas DataFrame时这一点尤其方便,因为输出结果为整齐的表格。

通过修改内核选项ast_note_interactivity,可以使Jupyter对独占一行的所有变量或语句都自动显示,从而可以看到多个语句的运行结果。一种修改方法是每次使用时,在对当前Notebook设定进行修改:

1
2
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

二是进行全局修改,即以后所有笔记本都这样。修改方法是:在Ipython配置文件夹下新建python_config.py文件,并加入以下代码:

1
2
c = get_config()
c.InteractiveShell.ast_node_interactivity = "all"

Windows下的配置文件夹为:C:/Users/UserName/.ipython/profile_default(UserName为你的用户名);Linux下的配置文件夹为Home目录下的.ipython/profile_default/

轻松连接到文档

在Help菜单下,我们可以找到常见库的在线文档,包括Numpy,Pandas,Scipy和Matplotlib等。另外,在库、方法或变量的前面或后面加上,即可以打开相关语法的帮助文档。

在变量的前面或后面加上一个问号(?)就可以将有关该对象的一些通用信息展示出来,我们称为对象的内省(object introspection)。

Jupyter Magic命令

运行Python代码

在Jupyter Notebook中,所有的文件都可以通过%run命令当作Python程序来运行。假设我们在test.py中放入了一段简单的脚本:

1
2
3
4
5
6
7
8
def f(x, y, z):
return (x+y)/z

a = 5
b = 6
c = 7.5

result = f(a, b, c)

只要将文件名传给%run就可以运行了。

%run不仅可以运行.py格式的python代码,而且可以运行Jupyter Notebook文件。

从外部脚本插入代码

用外部脚本替换当前Shell,可以用%load实现。以上面的test.py为例,在单元格中输入%load test.py回车,

计时

%%time:Cell内代码的单词运行时间

%%timeit:使用了Python的 timeit 模块,该模块运行某语句100,000次(默认值),然后提供最快的3次的平均值作为结果。

上述只是一点点最常用的Jupyter Notebook的技巧,想要学习了解更多内容,请参考其官方文档。