
- Jupyter教程
- Jupyter - 主页
- Python
- IPython - 简介
- IPython - 安装
- IPython - 入门
- 运行和编辑 Python 脚本
- IPython - 历史命令
- IPython - 系统命令
- IPython - 命令行选项
- 动态对象自省
- IPython - IO 缓存
- 将 IPython 设置为默认 Python 环境
- 导入Python shell代码
- IPython - 嵌入 IPython
- IPython - 魔法命令
- 朱皮特
- Jupyter 项目 - 概述
- Jupyter Notebook - 简介
- 在线使用 Jupyter
- 安装和入门
- Jupyter Notebook - 仪表板
- Jupyter Notebook - 用户界面
- Jupyter Notebook - 单元类型
- Jupyter Notebook - 编辑
- Jupyter Notebook - Markdown 单元格
- 细胞魔法功能
- Jupyter Notebook - 绘图
- 转换笔记本
- Jupyter 笔记本 - IPyWidgets
- Qt控制台
- QtConsole - 入门
- QtConsole - 多行编辑
- QtConsole - 内联图形
- QtConsole - 保存到 Html
- QtConsole - 多个控制台
- 连接到 Jupyter 笔记本
- 使用 github 和 nbviewer
- Jupyter实验室
- JupyterLab - 概述
- 安装和入门
- JupyterLab - 界面
- JupyterLab - 安装 R 内核
- Jupyter 资源
- Jupyter - 快速指南
- Jupyter - 有用的资源
- Jupyter - 讨论
IPython - 魔法命令
与标准 Python shell 相比,魔术命令或魔术函数是 IPython 提供的重要增强功能之一。这些神奇命令旨在解决使用 Python 进行数据分析的常见问题。事实上,它们控制着 IPython 本身的Behave。
魔术命令充当方便的函数,而 Python 语法不是最自然的语法。它们对于在工作流程中嵌入无效的 python 语法非常有用。
魔法命令的类型
有两种类型的魔法命令 -
- 线条魔法
- 细胞魔法
线条魔术
它们类似于命令行调用。它们以 % 字符开头。该行的其余部分是不带括号或引号传递的参数。线条魔术可以用作表达式,并且它们的返回值可以分配给变量。
细胞魔法
它们有 %% 字符前缀。与行魔术函数不同,它们可以在其调用下方的多行上进行操作。事实上,他们可以对收到的输入进行任意修改,甚至根本不需要是有效的 Python 代码。他们将整个块作为单个字符串接收。
要了解有关魔法函数、内置魔法及其文档字符串的更多信息,请使用 magic 命令。通过 % magicfunction 获取特定魔法函数的信息?命令。现在让我们描述一些内置的行和单元格魔术命令。
内置线条魔法
%autocall [mode]
这个神奇的函数使函数可以自动调用,而无需使用括号。它采用三个可能的模式参数:0(关闭)、默认值 1(智能)或2(始终打开)。

%自动魔法
如果设置为 1,魔术函数无需输入初始 % 即可调用。如果没有参数,它会打开/关闭。要停用,请设置为 0。
以下示例显示了当 %automagic 设置为 1 时,在不带前导 % 的情况下调用魔术函数%pwd (显示当前工作目录)

%光盘
这行魔法改变了当前目录。此命令会自动在变量 _dh 中维护您在 IPython 会话期间访问的目录的内部列表。您还可以执行“cd -<tab>”来方便地查看目录历史记录。

用法
%cd 命令可以通过以下方式使用 -
%cd <dir> - 将当前工作目录更改为 <dir>
%cd.. - 将当前目录更改为父目录
%cd - 更改为上次访问的目录。
%dhist
这个神奇的命令会打印您在当前会话中访问过的所有目录。每次使用 %cd 命令时,该列表都会在_dh变量中更新。

%编辑
这个神奇的命令调用当前操作系统的默认文本编辑器(Windows 的记事本)来编辑 Python 脚本。该脚本在编辑器关闭时执行。
%env
这个神奇的命令将列出所有环境变量。它还读取特定变量的值或设置环境变量的值。
用法
%cd 命令可以通过以下方式使用 -
%env - 列出所有环境变量
%env var - 获取 var 的值
%env var val - 设置 var 的值

%gui [用户名]
当不带参数使用时,此命令启用或禁用 IPython GUI 事件循环集成。使用 GUINAME 参数,这一魔法将默认的 GUI 工具包替换为指定的工具包。
先生。 | 命令与说明 |
---|---|
1 | %guiwx 启用 wxPython 事件循环集成 |
2 | %gui qt4|qt 启用 PyQt4 事件循环集成 |
3 | %gui qt5 启用 PyQt5 事件循环集成 |
4 | %guigtk 启用 PyGTK 事件循环集成 |
5 | %guigtk3 启用 Gtk3 事件循环集成 |
6 | %gui tk 启用 Tk 事件循环集成 |
7 | %gui 操作系统 启用 Cocoa 事件循环集成 |
8 | (需要%matplotlib 1.1) |
9 | %gui 禁用所有事件循环集成 |
%lsmagic
显示当前可用的所有魔法功能

%matplotlib
此函数在 IPython 会话期间激活 matplotlib 交互式支持。但是,它不导入 matplotlib 库。matplotlib 默认 GUI 工具包是 TkAgg。但您可以明确请求不同的 GUI 后端。您可以看到可用后端的列表,如下所示 -
In [4]: %matplotlib --list Available matplotlib backends: ['osx', 'qt4', 'qt5', 'gtk3', 'notebook', 'wx', 'qt', 'nbagg','gtk', 'tk', 'inline']
此处显示的 IPython 会话使用qt工具包绘制正弦波-

使用 Jupyter Notebook 时,%matplotlib 内联指令仅在浏览器中显示绘图输出。
%笔记本
此函数将当前 IPython 历史记录转换为扩展名为 ipynb 的 IPython 笔记本文件。上一示例中的输入单元格保存为 sine.ipynb
%notebook sine.ipynb
%个人信息
这个功能类似于对象内省?特点。要获取有关对象的信息,请使用以下命令 -
%pinfo object
这是反对的同义词吗?或?对象。
%精确
这个神奇的函数将浮点结果限制为小数点后的指定数字。

%密码
这个神奇的函数返回当前的工作目录。

%pylab
此函数使用 matplotlib 和 numpy 库填充当前 IPython 会话。

%记起
当不带任何参数执行时,该函数执行先前的命令。
请注意,在%recall n中,前面的数字是输入单元格编号。因此,第 n 个单元格中的命令被调用。您可以使用%recall 1-4等命令来调用单元格部分中的命令。当前输入单元格填充有调用的单元格,并且光标闪烁直到按下回车键。

%跑步
此命令从 IPython shell 中运行 Python 脚本。

%时间
此命令显示 IPython 环境执行 Python 表达式所需的时间。

%时间
此函数还显示 IPython 环境执行 Python 表达式所需的时间。Python 语句或表达式的时间执行使用 timeit 模块。此函数可以用作线条和单元格魔术,如下所述 -
在行模式下,您可以为单行计时。
在单元模式下,第一行中的语句用作设置代码,并对单元的主体进行计时。单元体可以访问在设置代码中创建的任何变量。
%WHO
此行魔术打印所有交互变量,并带有一些最小的格式。如果给出任何参数,则仅打印类型与其中之一匹配的变量。

IPython 自定义线条魔术函数
IPython 的核心库包含 register_line_magic 装饰器。使用此装饰器将用户定义的函数转换为行魔术函数。
