Jupyter notebook
1. 安装
最简单的安装方式就是通过 Anaconda
进行安装,Anaconda
是使用最广泛的环境管理工具,并且它可以预先安装很多常用的第三方库,包括numpy
、pandas
、matplotlib
等。
除了通过 Anaconda
安装,也可以直接采用 pip
pip install jupyter
2. 创建一个 Notebook
运行 Jupyter
在 Windows,可以通过添加到开始菜单的快捷方式运行 Jupyter ,当然也可以通过在命令行输入命令 jupyter notebook
注意,这里仅仅展示 Jupyter 运行时候的所在文件夹内的文件和文件夹,也就是在命令行运行 jupyter notebook
时所在的文件夹,当然这个也可以改变,运行命令的时候可以指定文件夹位置,即输入:
jupyter notebook filepath
此外,这里在浏览器上的 URL 地址是类似 http://localhost:8888/tree
,其中 localhost
是表示本地地址,然后 8888
是端口。
接下来就是创建一个新的 notebook,可以如下图所示,在管理界面的右上角位置,点击 New
菜单,这里就可以选择 Python 3
(或者其他的版本),然后就可以创建成功,并且是在新的窗口打开这个 notebook,在默认命名就是 Untitled.ipynb
。
ipynb 文件
每个 ipynb
文件都是通过 JSON
格式来描述 notebook 的内容,包括每个单元及其内容,都是通过 metadata
的格式展示。这里可以在打开 ipynb
文件后,菜单中选择 Edit->Edit Notebook Metadata
,进行编辑。
notebook 界面
一个新的 notebook 界面如下图所示
这里有两个术语需要知道--cells
和 kernels
,两个都是非常重要的术语:
kernel
:表示计算引擎,用于执行 notebook 中的代码块cell
:单元块,用于展示文本或者是代码。
单元(Cells)
首先介绍的是 Cells
,一个 Cell
就是上图中框部分,它是 notebook 的主要部分,通常有两种主要的 cell
类似:
code cell
:包括需要执行的代码,以及其运行结果
Markdown cell
:包含的是 Markdown 格式的文本并且其执行结果
下图展示了一个简单的例子,第一行 Jupyter 入门教程 这个就是一个 Markdown cell
,这里展示的是执行这个 cell
的结果,如果需要执行一个 cell
,可以点击 Run
按钮,或者快捷键 Ctrl + Enter
即可,然后下方两个都是 code cell
,第一个是导入第三方库,第二个则是打印一段话以及其运行结果。
可以注意到 code cell
的左侧会有一个标签 In [1]
,这里的数字表示该代码块运行的次序,即在该 notebook 中,如果没有执行,显示的是 In [ ]
,如果是该 notebook 第一个运行的代码块,则是 In [1]
,如果再次运行,则显示 In [2]
,依次类推,同个代码块多次执行,这个数字也是会改变的。而 In
是 Input
的缩写。如果代码块运行时间有点久,它会显示 In [*]
,表示当前代码块正在运行中。
对于 notebook,还可以直接展示变量的数值,或者是函数的返回值,不需要调用 print 函数,如下图所示,当然它只会打印当前单元的最后一行的内容。
还需要注意的一件事情就是,对于一个单元,如果正在编辑,其边界框显示的是绿色,而运行时候则显示蓝色。这里展示的就是两种模式,即绿色表示编辑模式,蓝色表示命令模式。
快捷键
notebook 有很多快捷键,可以通过菜单中的 Help->Keyboard Shortcuts
查看,也可以直接用快捷键 Ctrl+Shift+P
查看。下面简单介绍一些快捷键:
- 编辑模式和命令模式可以通过
Esc
和Enter
进行转换,一般是按Esc
进入命令模式,Enter
进入编辑模式
在命令模式下:
- 在
cell
之间上下浏览采用上下箭头,或者Up
和Down
键 A
表示在当前 cell 上方插入一个新的cell
,而B
则是下方插入新的cell
M
表示变为Markdown cell
,而Y
是表示变为code cell
- 连续按两次
D
是删除当前cell
Z
是撤销操作Shift
加上Up
或者Down
可以一次选择多个cells
,接着采用Shift + M
可以合并多个cells
Kernels
每个 notebook 都有一个 kernel。当执行一个单元内的代码的时候,就是采用 kernel 来运行代码,并将结果输出显示在单元内。同时 kernel 的状态会保留,并且不止局限在一个单元内,即一个单元内的变量或者导入的第三方库,也是可以在另一个单元内使用的,并不是相互独立的。
某种程度来说,notebook 可以看做是一个脚本文件,除了增加了更多输入方式,比如说明文字、图片等等。
这里同样用一个代码例子进行介绍 kernel 的这种特性,如下图所示,分别在两个单元内输入两段代码,第一个单元内时导入 numpy
并定义函数 square()
,而第二个单元内就调用了这个函数 square()
,并成功运行输出结果。
大部分情况下都是自顶向下的运行每个单元的代码,但这并不绝对,实际上是可以重新回到任意一个单元,再次执行这段代码,因此每个单元左侧的 In [ ]
就非常有用,其数字就告诉了我们它是运行的第几个单元。
此外,我们还可以重新运行整个 kernel,这里介绍菜单 Kernel
中的几个选项:
Restart
:重新开始 kernel,这会清空 notebook 中所有的变量定义Restart & Clear Output
: 和第一个选项相同,但还会将所有输出都清除Restart & Run All
:重新开始,并且会自动从头开始运行所有的单元内的代码
通常如果 kernel 陷入某个单元的代码运行中,希望停止该代码的运行,则可以采用 Interupt
选项。
选择一个 kernel
在 Kernel
菜单中同样提供了一个更换 kernel
的选项,最开始创建一个 notebook 的时候,就是选择了一个 kernel
,当然这里能否选择其他的 kernel
,取决于是否有安装,比如 Python
的版本,当你同时安装了 python3.6
和 python2.7
,那么就有这两个选择,除了 Python 语言,Juypter notebook 支持的 kernel
还包括其他超过一百种语言,比如 Java、C、R、Julia 等等。
来源地址:https://blog.csdn.net/qq_43200940/article/details/129950373