=================================== 相关技术术语与概念 =================================== 这一部分将介绍如何运行和保存 notebooks,熟悉 Jupyter notebook 的结构和交互界面。 这里将通过一个例子来熟悉一些核心的用法,更好的了解 Jupyter notebook 的使用。 在深入探讨了重启内核的重要性和方法后, 让我们继续探索Jupyter Notebook中其他一些能够提升工作效率和体验的技巧。 运行 Jupyter ================================================== 在 Windows,可以通过添加到开始菜单的快捷方式运行 Jupyter , 当然也可以通过在命令行输入命令 jupyter notebook 开始运行, 然后会在默认浏览器中打开一个新的窗口,当然上述还不是一个 notebook, 它是 Notebook 的管理界面,用于管理当前文件夹的所有 Notebooks。 注意,这里仅仅展示 Jupyter 运行时候的所在文件夹内的文件和文件夹, 也就是在命令行运行 jupyter notebook 时所在的文件夹,当然这个也可以改变, 运行命令的时候可以指定文件夹位置,即输入: :: jupyter notebook filepath 此外,这里在浏览器上的 URL 地址是类似 http://localhost:8888/tree,其中 localhost 是表示本地地址,然后 8888 是端口。 接下来就是创建一个新的 notebook,在管理界面的右上角位置, 点击 New 菜单,这里就可以选择 Python 3 (或者其他的版本), 然后就可以创建成功,并且是在新的窗口打开这个 notebook,在默认命名就是 ``Untitled.ipynb`` 。 如 :numref:`创建新的 notebook` 所示。 .. figure:: image22.png :alt: 创建新的 notebook :align: center :name: 创建新的 notebook 创建新的 notebook ipynb 文件 ================================================== 每个 ipynb 文件都是通过 JSON 格式来描述 notebook 的内容,包括每个单元及其内容, 都是通过 metadata 的格式展示。这里可以在打开 ipynb 文件后, 菜单中选择 Edit->Edit Notebook Metadata ,进行编辑。 notebook 界面 ================================================== 现在开始介绍下 notebook 的界面信息, notebook的编辑界面可选择打开方式,“Open in notebook“ 形式 和“Open in NbClassic“方式。 以“Open in NbClassic“方式打开,如 :numref:`两个术语` 所示。 .. figure:: image23.png :alt: 两个术语 :align: center :name: 两个术语 两个术语 这里有两个术语需要知道--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 ,第一个是导入第三方库, 第二个则是打印一段话以及其运行结果。 如 :numref:`Jupyter 入门教程` 所示。 .. figure:: image24.png :alt: Jupyter 入门教程 :align: center :name: Jupyter 入门教程 Jupyter 入门教程 可以注意到 code cell 的左侧会有一个标签 In [1] ,这里的数字表示该代码块运行的次序, 即在该 notebook 中,如果没有执行,显示的是 In [ ] ,如果是该 notebook 第一个运行的代码块, 则是 In [1] ,如果再次运行,则显示 In [2],依次类推,同个代码块多次执行,这个数字也是会改变的。 而 In 是 Input 的缩写。如果代码块运行时间有点久,它会显示 In [*] ,表示当前代码块正在运行中。 对于 notebook,还可以直接展示变量的数值,或者是函数的返回值,不需要调用 print 函数, 当然它只会打印当前单元的最后一行的内容。 如 :numref:`展示变量数值` 所示。 .. figure:: image25.png :alt: 展示变量数值 :align: center :name: 展示变量数值 展示变量数值 还需要注意的一件事情就是,对于一个单元,如果正在编辑,其边界框显示的是绿色, 而运行时候则显示蓝色。这里展示的就是两种模式,即绿色表示编辑模式,蓝色表示命令模式。 快捷键 ================================================== 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 Markdown语法支持 ================================================== Jupyter Notebook不仅支持代码编写,还支持Markdown和HTML格式的文本。 这使得你可以在Notebook中插入格式化的文本、图片、链接和表格等,从而制作出既美观又内容丰富的文档。 Markdown 是一个轻量级的易于学习使用的标记语言,主要用于格式化文本文字。它的语法类似 HTML 语言, 是一个非常有帮助的语言,可以用于添加注释说明或者添加图片。 - Markdown:你可以在一个新的代码单元中,选择“Markdown”模式(或使用快捷键M), 然后输入Markdown格式的文本。 Notebook会自动将其渲染为格式化后的文本。 - HTML:你也可以直接在Markdown单元中插入HTML代码,Notebook会将其渲染为相应的HTML元素。 可以尝试在 Jupyter notebook 中输入下面的文字,记住是在 Markdown cell中: :: # This is a level 1 heading ## This is a level 2 heading This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. Paragraphs must be separated by an empty line. * Sometimes we want to include lists. * Which can be indented. 1. Lists can also be numbered. 2. For ordered lists. [It is possible to include hyperlinks](https://www.example.com) Inline code uses single backticks: `foo()`, and code blocks use triple backticks: ``` bar() ``` Or can be indented by 4 spaces: foo() And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg) 如 :numref:`得到的结果` 所示。 .. figure:: image26.png :alt: 得到的结果 :align: center :name: 得到的结果 得到的结果 如果想添加图片,有三种做法: - 使用网络上的图片,添加其网络链接 URL,比如上述例子就是这种做法, URL 是 https://www.example.com/image.jpg - 采用一个本地 URL,那么图片就只能使用在该 notebook 中,比如在同一个 git 仓库中 - 菜单栏选择 “Edit->Insert Image",这种做法会将图片转换为字符串形式并存储在 ``.ipynb`` 文件中, 这种做法会增加 ipynb 文件的大小 魔法命令与魔法函数 ================================ 为了方便使用, JupyterLab内置了一些非通用的,特殊的指令, 分为魔法命令与魔法函数。 魔法命令 ----------------------- Jupyter Notebook支持一种特殊的命令,称为“魔法命令”(Magic Commands), 它们以 ``%`` (行魔法命令)或 ``%%`` (单元魔法命令)开头。这些命令提供了许多有用的功能, 比如性能分析、时间测量、环境变量管理等。 - ``%timeit`` :用于测量单个语句的执行时间。 - ``%%writefile`` :将单元格的内容写入到文件中。 - ``%matplotlib inline`` :在Jupyter Notebook中直接显示Matplotlib生成的图表。 魔法函数 ------------- 使用魔法函数可以简单的实现一些单纯python要很麻烦才能实现的功能。 - ``%`` :行魔法函数,只对本行代码生效。 - ``%%`` :Cell魔法函数,在整个Cell中生效,必须放于Cell首行。 - ``%lsmagic`` :列出所有的魔法函数 - ``%magic`` :查看各个魔法函数的说明 - ``?`` :后面加上魔法函数名称,可以查看该函数的说明 一些常用魔法函数的示例: .. csv-table:: :file: 魔法函数示例.csv :widths: 1, 1 :header-rows: 1 注意这些命令是在Python kernel中适用的,其他 kernel 不一定适用。