IPython - 介绍
Jupyter & IPython - 简介
Section titled “Jupyter & IPython - 简介”欢迎来到 Jupyter 和 IPython 的交互式计算世界!这些工具彻底改变了数据科学家、研究人员、教育工作者和开发人员探索数据、原型设计算法和分享计算叙述的方式。
什么是 IPython?
Section titled “什么是 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?
Section titled “什么是 Project 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 的关系
Section titled “IPython 与 Jupyter 的关系”可以将 IPython 比作引擎,而 Jupyter (Notebook/Lab) 则是仪表盘和底盘。当你在 Jupyter Notebook 或 JupyterLab 中运行 Python 代码时,幕后通常使用的是 IPython 内核 来执行代码。许多与 Jupyter 相关的功能,例如魔术命令和使用 ? 进行的对象自省,实际上都是底层 IPython 内核的特性。
为何使用它们?
Section titled “为何使用它们?”Jupyter 和 IPython 是不可或缺的工具,适用于:
- 数据探索与分析 (Data Exploration and Analysis): 交互式地加载、清洗、转换、可视化和建模数据。
- 原型设计 (Prototyping): 快速测试代码片段和算法。
- 科学计算 (Scientific Computing): 执行复杂的计算和模拟。
- 教育: 创建交互式教程和课程材料。
- 可复现研究 (Reproducible Research): 以可共享的格式记录计算工作流程。
现代 IPython(版本 8.x+)需要 Python 3.8 或更高版本。本教程将引导你了解如何利用 IPython 的强大功能,通常是在流行的 JupyterLab 环境中使用。