=================================== 相关技术术语与概念 =================================== 这一部分将介绍如何运行和保存 notebooks,熟悉 Jupyter notebook 的结构和交互界面。 在深入探讨了重启内核的重要性和方法后, 让我们继续探索Jupyter Notebook中其他一些能够提升工作效率和体验的技巧。 ipynb 文件 ================================================== 每个 ipynb 文件都是通过 JSON 格式来描述 notebook 的内容,包括每个单元及其内容, 都是通过 metadata 的格式展示。打开 ipynb 文件后, 菜单中选择 Edit->Edit Notebook Metadata ,进行编辑。 Notebook 界面 ================================================== 现在开始介绍 notebook 的界面信息, notebook的编辑界面可选择2种打开方式:“Open in notebook“ 和“Open in NbClassic“。 例如以“Open in NbClassic“的方式打开,如 :numref:`两个术语` 所示。 .. figure:: image23_x28.png :alt: 两个术语 :align: center :name: 两个术语 两个术语 这里有两个术语需要知道--cells 和 kernels ,两个都是非常重要的术语: - kernel :表示计算引擎,用于执行 notebook 中的代码块 - cell :单元块,用于展示文本或者是代码。 单元(Cells) ================================================== 首先介绍的是 Cells ,它是 notebook 的主要部分, 通常有两种主要的 cell 形式: - Code cell :包括需要执行的代码,以及其运行结果 - Markdown cell :包含的是 Markdown 格式的文本并且其执行结果 下图展示了一个简单的例子,第一行是 Jupyter 入门教程 这是一个 Markdown cell , 这里展示的是执行 cell 的结果,如果需要执行一个 cell ,可以点击 Run 按钮, 或者快捷键 Ctrl + Enter 即可。下方两个都是 Code cell ,第一个是导入第三方库, 第二个则是打印一段话以及其运行结果。 如 :numref:`Jupyter 入门教程` 所示。 .. figure:: image24_x4y.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_x96.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_xas.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 不一定适用。