Jupyter Notebook 介绍与使用指南 – wiki基地


Jupyter Notebook 介绍与使用指南:交互式计算与数据科学的强大基石

引言

在当今数据科学、机器学习以及需要进行交互式编程和数据探索的领域,Jupyter Notebook 已经成为一个不可或缺的工具。它不仅仅是一个代码编辑器,更是一个集代码、文本、数学公式、可视化结果于一体的交互式工作环境。本文将深入介绍 Jupyter Notebook 的核心概念、功能特性,并提供一份详细的使用指南,帮助读者从入门到熟练掌握这个强大的工具。

第一部分:认识 Jupyter Notebook

1.1 什么是 Jupyter Notebook?

Jupyter Notebook 是一个开源的 Web 应用程序,它允许用户创建和共享包含实时代码、方程、可视化和叙述性文本的文档。它的名称 “Jupyter” 是 Julia、Python 和 R 这三种在科学计算领域非常流行的编程语言的首字母组合,表明了其多语言支持的特性。

与其说它是一个传统的IDE(集成开发环境),不如说它是一个交互式计算环境。它将代码执行、结果展示、文本说明等多种元素集成在同一个文档中,形成一种独特的“笔记本”格式(.ipynb 文件)。

1.2 Jupyter Notebook 的核心特性

  • 基于 Web 的交互式界面: 通过浏览器访问和操作,无需安装厚重的桌面应用。
  • 代码、文本与输出的集成: 允许在同一个文档中混合编写和执行代码、添加解释性文本(使用 Markdown)、显示计算结果、嵌入图片和视频等。
  • 支持多种编程语言(通过内核 Kernels): 虽然最初与 IPython 紧密相关,但通过安装不同的内核,Jupyter Notebook 可以支持包括 Python, R, Julia, Scala 等在内的众多编程语言。
  • 丰富的输出格式: 不仅能显示代码的文本输出,还能直接渲染 HTML、图片、Plotly/Matplotlib 图形、LaTeX 公式等。
  • 易于分享: .ipynb 文件本质上是 JSON 格式的文本文件,易于通过电子邮件、GitHub 等方式分享。此外,Notebook 可以方便地导出为 HTML、PDF、Markdown、Python 脚本等多种格式。
  • 交互性强: 可以逐个代码块(Cell)执行,方便进行实验和调试。变量在不同 Cell 之间共享(在同一个 Kernel 会话中)。

1.3 为什么选择 Jupyter Notebook?

Jupyter Notebook 的独特之处在于它促进了一种迭代式、探索式的工作流程。这种模式在以下场景中尤其有用:

  • 数据探索与分析: 逐步加载数据、清洗、转换、计算描述性统计量、可视化,每一步的结果都可以立即看到,方便调整和优化。
  • 教学与演示: 非常适合作为编程或数据科学课程的教学工具。老师可以逐步讲解概念,学生可以实时运行代码进行练习。演示者可以边讲解边执行代码,生动直观。
  • 报告与文档: 可以将分析过程、代码、结果和解释性文字组织在一起,形成一份完整的可执行报告。
  • 快速原型开发: 快速验证想法,测试代码片段。
  • 协作与分享: 将整个分析过程打包成一个文件,方便与同事或社区分享,他人可以直接复现你的工作(如果环境一致)。
  • 可重复性研究: 将研究过程和结果记录在 Notebook 中,有助于提高研究的可重复性。

1.4 Jupyter 生态系统简介

Jupyter Notebook 是 Project Jupyter 项目中最核心和最著名的产物之一,但 Project Jupyter 还有其他重要组成部分:

  • JupyterLab: Jupyter Notebook 的下一代用户界面,提供更灵活、更强大的工作空间,支持多文档、终端、文件浏览器、文本编辑器等多种功能集成在一个界面中。可以看作是 Jupyter Notebook 的增强版 IDE。
  • JupyterHub: 一个多用户服务器,可以托管多个单用户 Jupyter Notebook 或 JupyterLab 服务器,常用于教育机构或企业环境中,为用户提供集中式的计算资源。
  • JupyterLite: 一个基于 WebAssembly 在浏览器中运行的 Jupyter 环境,无需服务器端,可用于快速演示或轻量级使用。

本文主要聚焦于经典的 Jupyter Notebook。

第二部分:Jupyter Notebook 的安装与启动

2.1 安装方式

安装 Jupyter Notebook 最推荐的方式是使用 AnacondaMiniconda。它们是流行的 Python/R 数据科学平台,集成了 Python 解释器、常用的科学计算库(如 NumPy, Pandas, Matplotlib, Scikit-learn)以及 Jupyter Notebook 本身。

  • 使用 Anaconda/Miniconda:

    1. 访问 Anaconda 官网 (https://www.anaconda.com/products/distribution) 或 Miniconda 官网 (https://docs.conda.io/en/latest/miniconda.html) 下载适合你操作系统的安装包。Miniconda 更轻量,只包含 Python、conda 包管理器以及一些基本工具。
    2. 按照安装向导进行安装。推荐勾选将 Anaconda/Miniconda 添加到系统环境变量(PATH)。
    3. 安装完成后,Jupyter Notebook 就已经随之安装好了。
  • 使用 pip (如果已经安装了 Python):
    如果你已经安装了 Python,并且希望在现有的 Python 环境中使用 Jupyter Notebook,可以通过 pip 安装:
    bash
    pip install notebook

    或者,如果你需要更全面的科学计算支持:
    bash
    pip install jupyterlab # JupyterLab 包含 Notebook 功能,推荐安装 JupyterLab

    推荐在一个独立的 Python 虚拟环境(如使用 venvconda env)中安装 Jupyter Notebook,以避免与其他项目依赖冲突。

2.2 启动 Jupyter Notebook

安装完成后,可以通过命令行启动 Jupyter Notebook。

  • 启动命令:
    在终端或命令提示符中输入:
    bash
    jupyter notebook

    如果你安装的是 JupyterLab,也可以输入:
    bash
    jupyter lab

  • 启动过程:
    执行命令后,会发生以下几件事:

    1. 在当前命令行所在的目录下启动一个本地的 Web 服务器(默认端口是 8888)。
    2. 你的默认网页浏览器会自动打开一个新的标签页,显示 Jupyter Notebook 的文件浏览器界面。
    3. 在命令行窗口会看到服务器的运行日志,包括访问地址 (通常是 http://localhost:8888/?token=...) 和关闭服务器的提示(通常是按 Ctrl+C)。不要关闭这个命令行窗口,否则服务器会停止运行,导致浏览器中的 Notebook 无法使用。
  • 访问界面:
    浏览器中打开的页面就是 Jupyter Notebook 的文件浏览器。它显示了启动命令所在目录的文件和文件夹。你可以在这里创建新的 Notebook、打开现有的 Notebook、上传文件、新建文件夹等。

第三部分:Jupyter Notebook 用户界面详解

Jupyter Notebook 的用户界面主要由两个部分组成:文件浏览器界面和 Notebook 编辑器界面。

3.1 文件浏览器界面

当启动 jupyter notebook 后,首先看到的是文件浏览器界面。

  • 主要区域:
    • 顶栏: 显示当前目录的路径。
    • 文件/文件夹列表: 显示当前目录下的文件和子目录。.ipynb 文件是 Notebook 文件。
    • 上传按钮: 位于右上角,用于将本地文件上传到当前目录。
    • New 按钮: 位于右上角,点击可以创建新的 Notebook(选择可用的内核)、新建文件夹、新建文本文件等。
    • Shutdown / Duplicate / Rename 等操作: 选中文件或文件夹后,上方的按钮会激活,可以进行相应的操作。
    • Running 标签页: 显示当前正在运行的 Notebook 会话和终端会话,可以管理或关闭它们。
    • Clusters 标签页: (较少使用)与并行计算相关。

3.2 Notebook 编辑器界面

点击文件浏览器中的 “.ipynb” 文件(或点击 “New” 创建新的 Notebook)会打开一个新的标签页,进入 Notebook 编辑器界面。这是进行交互式编程和文档编写的主要区域。

  • 主要组成部分:
    • 标题栏: 显示 Notebook 的名称。点击可以重命名。
    • 菜单栏: File, Edit, View, Insert, Cell, Kernel, Widgets, Help。提供了 Notebook 的各种操作功能。
      • File: 新建、打开、保存、重命名、复制、导出等。
      • Edit: 剪切、复制、粘贴、删除单元格等。
      • Cell: 运行单元格、运行所有单元格、改变单元格类型等。
      • Kernel: 中断、重启、重连、切换内核等。
    • 工具栏: 一系列图标按钮,提供常用功能的快捷方式,如保存、插入单元格、剪切/复制/粘贴单元格、运行、中断、重启内核、改变单元格类型等。
    • 主要工作区: 由一系列单元格 (Cells) 组成。这是 Notebook 的核心区域。

3.3 Notebook 的两种模式

在 Notebook 编辑器中,任何时候都处于两种模式之一:

  • 编辑模式 (Edit Mode): 当你双击或按 Enter 键进入一个单元格内部时,就进入了编辑模式。此时可以在单元格内输入和修改内容(代码或文本)。单元格边框通常是绿色的。
  • 命令模式 (Command Mode): 当你点击单元格的边框(而不是内部)或按 Esc 键退出单元格编辑时,就进入了命令模式。此时无法编辑单元格内的内容,但可以通过键盘快捷键对单元格本身进行操作(如插入、删除、复制、粘贴、改变类型等)。单元格边框通常是蓝色的。

熟练掌握这两种模式及其对应的快捷键能极大地提高效率。

第四部分:核心概念:单元格 (Cells) 与内核 (Kernel)

4.1 单元格 (Cells)

单元格是构成 Notebook 的基本块。每个单元格可以包含不同类型的内容。最常用的单元格类型有两种:

  • 代码单元格 (Code Cells): 用于编写和执行代码。当你运行一个代码单元格时,它的输出会直接显示在该单元格下方。
    python
    # 这是一个代码单元格
    x = 10
    y = 20
    print(x + y)

    运行后下方会显示输出:
    30
  • Markdown 单元格 (Markdown Cells): 用于编写叙述性文本、解释、公式、图片、链接等。使用 Markdown 标记语言编写内容。运行 Markdown 单元格会将其渲染成格式化的文本。
    “`markdown
    # 这是一级标题

    这是一个 Markdown 单元格

    它支持:
    * 列表
    * 链接:Jupyter 官网
    * 图片:Python Logo
    * 行内代码 print("Hello")
    * 代码块:
    python
    import pandas as pd
    df = pd.read_csv('data.csv')

    * 数学公式(使用 LaTeX):$E = mc^2$

    运行这个单元格会显示格式化后的内容。
    “`
    * 原始 (Raw NBConvert) 单元格: 不常用,用于在 Notebook 导出时包含一些原始文本,不会被 Notebook 本身处理。

4.2 执行单元格

执行单元格是 Jupyter Notebook 最核心的操作之一。

  • 执行方式:

    • 选中要执行的单元格,点击工具栏的 “Run” 按钮。
    • 选中要执行的单元格,使用快捷键:
      • Shift + Enter: 运行当前单元格,并选中下一个单元格。如果当前是最后一个单元格,会在下方新建一个代码单元格并选中。
      • Ctrl + Enter (或 Cmd + Enter on Mac): 运行当前单元格,但仍然选中当前单元格。
      • Alt + Enter: 运行当前单元格,并在下方插入一个新的代码单元格并选中。
  • 执行状态:

    • 当单元格正在执行时,单元格左侧的 In [ ] 标记会变成 In [*]
    • 执行完成后,In [*] 会变成 In [n],其中 n 是该单元格在本次 Kernel 会话中执行的顺序编号。输出会显示在 Out [n] 旁边(如果该单元格有输出的话)。

4.3 内核 (Kernel)

内核是实际执行代码的计算引擎。每个 Notebook 都连接到一个特定的内核。

  • 功能: 内核负责接收 Notebook 发送的单元格代码,执行代码,并将结果、错误或输出发送回 Notebook 显示。
  • 多语言支持: 通过安装和配置不同的内核,可以在同一个 Jupyter 环境中运行不同语言的代码。例如,安装 ipykernel 支持 Python,安装 IRkernel 支持 R,安装 IJulia.jl 支持 Julia 等。
  • 状态: 内核是 Notebook 状态的核心。变量、函数定义等都存储在内核的内存中。执行一个代码单元格会改变内核的状态,后续单元格可以访问和使用这些变化。
  • 管理内核:
    • 菜单栏 Kernel 下有选项可以中断 (Interrupt)、重启 (Restart)、重连 (Reconnect) 内核,或者切换 (Change kernel) 到其他已安装的内核。
    • 如果 Notebook 运行缓慢、出现奇怪的错误,或者你想清除所有变量重新开始,通常可以尝试重启内核。重启内核会清除所有变量和状态,你需要重新运行必要的单元格来恢复环境。

4.4 Notebook 的保存与检查点 (Checkpoints)

  • 保存: Notebook 会自动定期保存,但你也可以随时通过点击工具栏的保存图标或使用快捷键 Ctrl + S (或 Cmd + S) 手动保存。
  • 检查点 (Checkpoints): Notebook 还有一个检查点功能,用于创建当前 Notebook 的快照。
    • 手动创建检查点:File -> Save and Checkpoint
    • 回滚到检查点:File -> Revert to Checkpoint
      检查点功能在你进行一些可能破坏 Notebook 的大修改之前非常有用。

第五部分:深入使用 Jupyter Notebook

5.1 Markdown 单元格:叙述你的分析过程

Markdown 单元格是编写解释性文本的关键。掌握基本的 Markdown 语法非常重要:

  • 标题: # 一级标题, ## 二级标题, ### 三级标题
  • 段落: 直接输入文本。
  • 换行: 在行末输入两个空格或按 Enter 两次创建一个新段落。
  • 强调: *斜体*_斜体_**粗体**__粗体__
  • 列表:
    • 无序列表:使用 *, -, 或 + 跟着一个空格。
      “`markdown

      • 项目 1
      • 项目 2
      • 子项目
        “`
    • 有序列表:使用数字跟着一个点和空格。
      “`markdown

      1. 第一项
      2. 第二项
        “`
  • 链接: [链接文本](URL)
    markdown
    [Jupyter 官网](https://jupyter.org)
  • 图片: ![图片描述](图片路径或URL)
    markdown
    ![Python Logo](https://www.python.org/static/community_logos/python-logo-master-v3-TM.png)
  • 代码块:
    • 行内代码:使用反引号包围 print("Hello")
    • 多行代码块:使用三个反引号包围,并在开始反引号后指定语言名称(可选)。
      python
      print("This is a code block")
      for i in range(3):
      print(i)
  • 分隔线: 使用三个或更多 *, -, 或 _
    markdown
    ***
  • 数学公式 (LaTeX): 使用 $ 包围行内公式,使用 $$ 包围块级公式。
    “`markdown
    行内公式:$E=mc^2$

    块级公式:
    $$
    \int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
    $$
    “`

通过合理使用 Markdown,可以让你的 Notebook 条理清晰,易于阅读和理解。

5.2 代码单元格:交互式编程的乐趣

代码单元格是执行计算的地方。除了基本的代码输入和执行,Jupyter Notebook 的代码单元格还有一些特别之处:

  • 显示最后一行输出: 默认情况下,代码单元格只会显示最后一行(或者最后一个表达式)的输出,除非使用 print()display() 函数。
    python
    # 示例
    a = 5
    a + 3
    a * 2 # 只有这一行的结果会被直接显示

    输出:
    10
    如果你想显示多行的结果,需要使用 print()
    python
    print(a + 3)
    print(a * 2)

    输出:
    8
    10
  • 富文本输出: Jupyter Notebook 支持显示富文本输出,例如 Pandas DataFrame 会被渲染成漂亮的表格,Matplotlib 或 Plotly 图形会直接嵌入到输出区域。
    “`python
    import pandas as pd

    data = {‘col1’: [1, 2], ‘col2’: [3, 4]}
    df = pd.DataFrame(data)
    df # 直接显示 DataFrame
    “`
    输出会是一个格式化的表格。

    “`python
    import matplotlib.pyplot as plt
    import numpy as np

    x = np.linspace(0, 10, 100)
    y = np.sin(x)

    plt.plot(x, y)
    plt.title(“Sine wave”)
    plt.xlabel(“x”)
    plt.ylabel(“sin(x)”)
    plt.show() # 必须使用 plt.show() 或者依赖魔术命令
    ``
    如果你使用了
    %matplotlib inline魔术命令(见下文),plt.show()` 通常可以省略。

  • 魔术命令 (Magic Commands): Jupyter Notebook 提供了一些特殊的“魔术命令”,以 %%% 开头,用于执行一些非标准的 Python 操作,比如计时、调试、执行系统命令等。

    • 行魔术命令 (%): 作用于单行。
      • %timeit: 测量单行代码的执行时间。
        python
        %timeit [x**2 for x in range(1000)]
      • %matplotlib inline: 在 Notebook 中显示 Matplotlib 图形,而不是弹出新窗口(对于较老的版本或环境可能需要)。在现代版本中通常是默认行为。
      • %whos: 列出当前环境中所有变量及其类型和大小。
      • %run script.py: 运行一个 Python 脚本。
      • %cd directory: 改变当前工作目录。
      • %pwd: 打印当前工作目录。
    • 单元格魔术命令 (%%): 作用于整个单元格。必须是单元格的第一行。
      • %%timeit: 测量整个单元格代码的执行时间。
        python
        %%timeit
        x = range(1000)
        y = [i**2 for i in x]
      • %%writefile filename: 将当前单元格的内容写入指定文件。
      • %%html, %%latex, %%markdown, %%svg: 将单元格内容按指定格式渲染。

    可以使用 %lsmagic 查看所有可用的魔术命令,使用 %magic 查看魔术命令的详细帮助。

  • Shell 命令: 可以在代码单元格中执行 Shell 命令,只需在命令前加上 !
    “`python
    !ls # 在 Linux/macOS 上列出文件
    !dir # 在 Windows 上列出文件

    !pip list # 查看已安装的 Python 包
    Shell 命令的输出会直接显示在单元格下方。你也可以将 Shell 命令的输出捕获到 Python 变量中:python
    files = !ls
    print(files)
    “`

5.3 键盘快捷键:提升效率的关键

熟练使用键盘快捷键可以显著提高在 Jupyter Notebook 中的操作效率。在命令模式下(蓝色边框),许多快捷键都是单字母或组合键。

  • 命令模式 (Esc 后):

    • Enter: 进入编辑模式。
    • A: 在当前单元格上方插入新单元格。
    • B: 在当前单元格下方插入新单元格。
    • DD: 删除当前单元格 (按两次 D)。
    • Z: 撤销删除单元格。
    • Y: 将当前单元格类型切换为 Code。
    • M: 将当前单元格类型切换为 Markdown。
    • R: 将当前单元格类型切换为 Raw。
    • Shift + Up/Down: 选中多个单元格。
    • Shift + M: 合并选中的单元格。
    • Ctrl + Shift + -: 在光标处分割单元格 (在编辑模式下)。
    • H: 显示快捷键帮助菜单。
  • 编辑模式 (Enter 后):

    • Esc: 返回命令模式。
    • Tab: 代码自动补全或缩进。
    • Shift + Tab: 显示函数或方法的 Docstring(参数、用法说明)。
    • Ctrl + ]: 增加缩进。
    • Ctrl + [: 减少缩进。
    • Ctrl + /: 注释/取消注释选中的代码行。
  • 通用快捷键 (两种模式下都有效):

    • Shift + Enter: 运行当前单元格,并选中下一个。
    • Ctrl + Enter: 运行当前单元格,保持选中当前单元格。
    • Alt + Enter: 运行当前单元格,并在下方插入新单元格。
    • Ctrl + S: 保存 Notebook。

强烈建议花时间熟悉这些快捷键,特别是进入/退出模式、插入/删除/切换单元格类型、以及运行单元格的快捷键。

第六部分:高级应用与生态系统

6.1 富媒体展示与交互式组件

除了基本的文本和图片,Jupyter Notebook 可以直接显示更多复杂的输出:

  • Pandas DataFrame: 自动渲染为美观的 HTML 表格。
  • Matplotlib, Seaborn, Plotly 等可视化库: 图形可以直接嵌入输出区域。对于 Plotly 等交互式图形库,可以保留交互功能。
  • 音频、视频、HTML: 使用 IPython.display 模块可以方便地在 Notebook 中嵌入音频、视频或任意 HTML 内容。
    “`python
    from IPython.display import display, HTML, Audio, Video, YouTubeVideo

    display(HTML(‘

    Hello, HTML!

    ‘))

    display(Audio(‘path/to/audio.wav’, autoplay=True))

    display(Video(‘path/to/video.mp4’))

    display(YouTubeVideo(‘some_youtube_video_id’))

    * **ipywidgets:** 创建交互式控件,如滑块、文本框、按钮等,可以将代码与用户输入关联起来,创建简单的交互式应用或演示。python
    from ipywidgets import interact, IntSlider

    def square(x):
    print(x**2)

    interact(square, x=IntSlider(min=1, max=10, step=1, value=5))
    ``
    运行此代码单元格,下方会出现一个滑块,拖动滑块时会实时调用
    square` 函数并打印结果。

6.2 JupyterLab:下一代工作空间

JupyterLab 提供了比经典 Notebook 更强大的功能和更灵活的布局。它在一个统一的界面中集成了:

  • 经典的 Notebook 编辑器
  • 文件浏览器
  • 终端
  • 文本编辑器
  • 控制台
  • 调试器
  • 可视化工具(如 CSV 文件查看器)

如果你经常需要处理多个文件、使用终端或者喜欢更像 IDE 的环境,推荐切换到 JupyterLab。它向下兼容 Notebook 文件(.ipynb)。

6.3 导出 Notebook

Jupyter Notebook 可以方便地导出为多种格式,便于分享和发布:

  • File -> Download as 菜单提供了多种导出选项,包括:
    • HTML (.html): 静态网页,保留所有代码、输出和 Markdown 渲染结果。适合在线分享。
    • PDF (.pdf): 需要安装额外的工具(如 Pandoc 和 LaTeX),将 Notebook 导出为 PDF 文档。
    • Python (.py): 只导出代码单元格的内容,生成一个 Python 脚本。
    • Markdown (.md): 导出 Markdown 单元格和代码/输出(通常以代码块形式)。
    • Notebook (.ipynb): 原始格式。

你也可以在命令行使用 jupyter nbconvert 工具进行更灵活的格式转换。

6.4 分享 Notebook

分享 Notebook 有多种常见方式:

  • 直接分享 .ipynb 文件: 收件人需要安装 Jupyter 环境才能打开和运行。
  • 转换为 HTML 或 PDF 分享: 收件人无需安装 Jupyter,但无法交互或修改代码。
  • 使用 GitHub: GitHub 原生支持渲染 .ipynb 文件,可以直接在线预览 Notebook 内容。
  • 使用 nbviewer: 一个免费服务,可以渲染存储在 GitHub、Gist 等地的 Notebook 文件为静态网页。只需提供 Notebook 的 URL。
  • 使用 Binder: 一个服务,可以根据 GitHub 仓库中的 Notebook 文件和环境配置文件(如 requirements.txt, environment.yml 等)构建一个可交互的在线 Jupyter 环境。用户打开链接即可在一个临时环境中运行 Notebook,无需本地安装。

第七部分:最佳实践与使用技巧

  • 保持单元格的简洁性: 一个代码单元格最好只做一件事情,或者包含逻辑上相关联的代码块。这样便于理解、修改和调试。
  • 善用 Markdown 进行解释: 在关键的代码块前后添加 Markdown 单元格,解释代码的功能、目的、输入输出,或者总结分析结果。这能让你的 Notebook 成为一个完整的故事或报告。
  • 按顺序运行单元格: Notebook 的设计理念是按顺序执行。虽然你可以乱序执行,但这可能导致意想不到的结果,因为后面的单元格可能依赖于前面单元格创建的变量或状态。建议养成从头到尾按顺序运行的好习惯,或者使用 Cell -> Run All 验证 Notebook 的可重复性。
  • 管理依赖环境: 如果 Notebook 依赖特定的库版本,强烈建议使用虚拟环境(如 Conda env 或 Python venv)。在创建虚拟环境后,需要在该环境中安装 ipykernel 并将其注册到 Jupyter 中,这样创建新 Notebook 时才能选择这个环境作为内核。
    bash
    # 使用 conda 创建虚拟环境
    conda create -n myenv python=3.9
    conda activate myenv
    pip install ipykernel pandas matplotlib numpy
    # 将当前环境注册为 Jupyter 内核
    python -m ipykernel install --user --name=myenv --display-name="Python (myenv)"

    这样在 Jupyter 的 “New” 菜单里就会出现 “Python (myenv)” 选项。
  • 版本控制: 将 Notebook 文件纳入版本控制系统(如 Git)。虽然 .ipynb 文件是 JSON 格式,其 diff 不总是很友好,但总比没有版本控制好得多。对于重要的项目,可以考虑使用工具(如 nbdime)来改进 Notebook 的 Git diff 和 merge 体验。
  • 清除输出后再分享: 在分享 Notebook 文件之前,考虑清除所有单元格的输出(Cell -> All Output -> Clear),除非输出本身就是 Notebook 内容的一部分。这可以减小文件大小,并让接收者第一次运行时可以自己生成输出,验证代码。
  • 定期保存: 虽然有自动保存,但手动保存是一个好习惯。
  • Kernel 状态: 时刻关注 Notebook 右上角显示的 Kernel 状态(圆形图标,空心表示空闲,实心表示忙碌)。如果 Kernel 持续忙碌或出现错误,可能需要中断或重启。

结论

Jupyter Notebook 凭借其强大的交互性、多样的内容支持和友好的界面,极大地改变了科学计算、数据分析和教学的方式。它将代码执行、结果展示和文档编写无缝结合,提供了一个独特且高效的工作流程。

从简单的代码片段执行到复杂的数据分析报告,从个人学习笔记到团队协作项目,Jupyter Notebook 都能胜任。通过掌握其核心概念(单元格、内核)、基本操作、Markdown 语法和常用快捷键,并遵循一些最佳实践,你可以充分发挥 Jupyter Notebook 的潜力,让你的编程和数据探索之旅更加高效、愉快和易于分享。

现在,是时候启动你的 Jupyter Notebook,开始你的交互式计算体验了!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部