Skip to content

IPython - 介绍

欢迎来到 Jupyter 和 IPython 的交互式计算世界!这些工具彻底改变了数据科学家、研究人员、教育工作者和开发人员探索数据、原型设计算法和分享计算叙述的方式。

IPython (Interactive Python) 最初是一个增强的交互式 Python shell,由 Fernando Pérez 于 2001 年创建。虽然标准 Python shell (>>>) 提供了基本的 REPL(Read-Evaluate-Print Loop,读取-求值-打印循环),但 IPython 提供了一个功能丰富的环境,专为科学计算和交互式数据探索而设计。

IPython 的主要特性:

  • 强大的交互式 shell,带有语法高亮、自动缩进功能。
  • Tab 键补全功能,适用于变量、函数、方法和文件路径。
  • 对象自省 (?, ??),可以轻松查看文档和源代码。
  • ‘魔术’命令 (%, %%),用于控制环境、测量代码执行时间、运行 shell 命令等。
  • 跨会话的命令历史记录访问。
  • 与调试器 (%debug) 集成。
  • Jupyter 的基础(内核)。

Project Jupyter 于 2014 年左右从 IPython 发展而来,旨在支持跨数十种编程语言(Julia, Python, R 是核心)的交互式计算。IPython 提供了强大的 Python 执行内核,而 Jupyter 则提供了面向用户的工具和标准。

核心 Jupyter 组件:

  • Jupyter Notebook: 最初基于 Web 的交互式计算环境,允许用户创建结合了实时代码、公式、可视化内容和叙述性文本的文档。
  • JupyterLab: Project Jupyter 的下一代可扩展的基于 Web 的用户界面。它提供了一个更加集成和灵活的环境,结合了笔记本、代码编辑器、终端和自定义组件。
  • Jupyter Kernels: 由 Jupyter 前端(例如 Notebook 或 Lab)启动的独立进程,用于运行用户特定语言的代码(例如 Python 代码使用 IPython 内核,R 使用 IRkernel)。
  • Jupyter Console: 一个基于终端的 Jupyter 内核前端,类似于最初的 IPython 终端。
  • QtConsole: 一个功能更丰富的图形控制台,用于 Jupyter 内核。
  • nbviewer: 一个用于渲染在线托管的 Jupyter 笔记本静态视图的服务。

可以将 IPython 比作引擎,而 Jupyter (Notebook/Lab) 则是仪表盘和底盘。当你在 Jupyter Notebook 或 JupyterLab 中运行 Python 代码时,幕后通常使用的是 IPython 内核 来执行代码。许多与 Jupyter 相关的功能,例如魔术命令和使用 ? 进行的对象自省,实际上都是底层 IPython 内核的特性。

Jupyter 和 IPython 是不可或缺的工具,适用于:

  • 数据探索与分析 (Data Exploration and Analysis): 交互式地加载、清洗、转换、可视化和建模数据。
  • 原型设计 (Prototyping): 快速测试代码片段和算法。
  • 科学计算 (Scientific Computing): 执行复杂的计算和模拟。
  • 教育: 创建交互式教程和课程材料。
  • 可复现研究 (Reproducible Research): 以可共享的格式记录计算工作流程。

现代 IPython(版本 8.x+)需要 Python 3.8 或更高版本。本教程将引导你了解如何利用 IPython 的强大功能,通常是在流行的 JupyterLab 环境中使用。