【3】jupyter单元格Cell操作

Jupyter Notebook 的核心功能单位是 Cell (单元格)。它就像一个灵活的容器,能容纳从可执行的代码到格式丰富的文本等多种内容,可以将其视为一个强大的电子笔记本。我们可以通过以下表格快速了解几种主要单元格类型:

类型 主要用途 执行效果与说明
💻 代码 编写和执行代码 (默认类型) 执行并显示代码输出,可运行 pythonRbash 等。
📝 Markdown 撰写格式丰富的文本 执行后渲染,支持标题、列表、表格、图片、视频、数学公式等。
📄 Raw NBConvert 存放不被执行的原始文本 执行时不会产生输出,在转换为其他格式 (如 LaTeX) 时会被原样保留。

⌨️ 核心操作

Jupyter Notebook 有两种核心操作模式,配合快捷键可以极大提升效率:

  • 命令模式 (按 Esc 进入) :单元格边框为蓝色,用于操作单元格本身
  • 编辑模式 (按 Enter 进入) :单元格边框为绿色,用于编辑单元格内的内容

⌨️ 高效快捷键

操作分类 快捷键 作用说明
🟦 命令模式
执行 & 移动 Shift + Enter 运行当前单元格,并选中下一个。
执行 & 插入 Alt + Enter 运行当前单元格,并在下方插入新单元格。
插入单元格 A / B 在当前单元格上方 (Above) / 下方 (Below) 插入新单元格。
删除单元格 D D 连续按两次 D 键,删除当前单元格。
类型转换 Y / M 将当前单元格转换为代码 (Code) 或 Markdown 类型。
合并单元格 Shift + M 合并选中的多个单元格。
显示帮助 H 弹出所有快捷键的快速参考。
🟩 编辑模式
执行 & 移动 Shift + Enter 运行当前单元格,并选中下一个。
执行 & 插入 Alt + Enter 运行当前单元格,并在下方插入新单元格。
代码补全 Tab 自动补全变量名或函数名。
函数提示 Shift + Tab 显示函数或对象的文档字符串 (Docstring)。
分割单元格 Ctrl + Shift + - 从光标位置将当前单元格一分为二。

🧙 魔法命令

魔法命令 (Magic Commands) 是 Jupyter 提供的一组以 %%% 开头的特殊命令,用于增强和扩展 Notebook 的功能。它们是 Jupyter 区别于普通 Python 脚本的重要功能。

常用行魔法 (以 % 开头)
  • %timeit:多次运行单行代码,并给出平均执行时间,用于性能评估。
  • %run :在 Notebook 中运行外部的 .py 脚本文件。
  • %load:将外部脚本或示例代码的内容加载到当前单元格中。
  • %who / %whos:列出当前交互环境中定义的所有变量及其信息。
  • %debug:在上一个异常处激活交互式调试器,方便排查问题。
  • %pwd / %ls / %cd:用于查看、列出和切换当前工作目录的 Shell 命令。
  • %env:列出当前系统所有的环境变量。
  • %matplotlib inline:设置 Matplotlib 绘图库,使其图表直接嵌入在 Notebook 中显示。
  • %lsmagic:列出当前环境中所有可用的魔法命令。
常用单元魔法 (以 %% 开头)
  • %%timeit:运行整个单元格中的代码块,并测量其平均执行时间。
  • %%writefile:将单元格的全部内容写入到指定文件名的外部文件中。
  • %%bash:将单元格中的所有内容作为 Bash Shell 脚本执行。
  • %%html:将单元格中的内容渲染为 HTML 代码,并在输出区域显示。
  • %%javascript:执行单元格内的 JavaScript 代码,常用于网页交互。
  • %%latex:将单元格中的内容渲染为 LaTeX 数学公式。
  • %%capture:捕获并隐藏单元格的标准输出和标准错误,便于调试。
  • %%script :允许你使用任何系统上已安装的解释器(如 ruby, perl, R)来运行当前单元格的内容。

🖥️ 执行 Shell 命令

你可以在代码单元格中,通过在前面加上感叹号 ! 来直接执行 Shell 命令。例如:

  • 使用 !ls -l 列出当前目录下的文件。
  • 使用 !pip install numpy 在 Notebook 中直接安装 Python 包。

📋 丰富的媒体内容

Jupyter 支持在 Markdown 单元格代码单元格的输出 中插入丰富的媒体内容。

  • Markdown 单元格 :支持标准 Markdown 语法,可以方便地插入图片、表格、列表等。
    • 插入图片![图片描述](图片的URL或本地路径)
    • 插入视频 :粘贴支持的视频链接,或在 Markdown 单元格中编写 <video> 标签。
    • 数学公式 :使用 LaTeX 语法,例如 $E = mc^2$ 生成行内公式,或 $$E = mc^2$$ 生成独立的公式块。
  • 代码单元格的输出 :利用 IPython.display 模块,可以创建更高级的富文本输出。
    • 插入图片from IPython.display import Image; Image("图片的URL")
    • 嵌入视频from IPython.display import YouTubeVideo; YouTubeVideo("视频ID")
    • 显示HTMLfrom IPython.display import HTML; HTML("<h1>Hello World!</h1>")
    • 显示JSONfrom IPython.display import JSON; JSON({"key": "value"})

💡 小贴士

  • 查看帮助 :在任何魔法命令后加 ? 可查看详细帮助,例如 %timeit?。同时,%quickref 命令可快速查看常用魔法命令的参考。
  • 获取环境信息 :使用 %lsmagic 可以列出当前环境中所有可用的魔法命令,避免因环境差异导致命令找不到的情况。
  • 变量交互 :Shell 命令中可以通过 {variable_name} 的形式引用 Python 变量。例如:dir_name = "data"; !mkdir -p {dir_name}
相关推荐
2301_777599372 小时前
Golang怎么实现微服务日志聚合_Golang如何将多个服务的日志统一收集到一处查询【指南】
jvm·数据库·python
花间相见2 小时前
【AI私人家庭医生day01】—— 项目介绍
大数据·linux·人工智能·python·flask·conda·ai编程
m0_747854522 小时前
MySQL如何缓解热点数据的更新瓶颈_合并更新请求与排队控制
jvm·数据库·python
zhangchaoxies2 小时前
React Flow 边缘丢失与错位问题的根源及 Hooks 重构方案
jvm·数据库·python
Wyz201210242 小时前
如何在 React 中正确绑定 onClick 事件避免字符串赋值错误
jvm·数据库·python
m0_377618232 小时前
如何在 Node.js 服务器间正确配置 CORS 实现跨子域资源访问
jvm·数据库·python
qq_189807032 小时前
如何在 Django ListView 中正确过滤当前用户的照片数据
jvm·数据库·python
m0_377618232 小时前
Go语言如何用systemd_Go语言systemd服务管理教程【总结】
jvm·数据库·python
棉猴3 小时前
python海龟绘图之计算夹角towards()
开发语言·python·turtle·海龟绘图·towards