Jupyter IPython 魔法命令

Jupyter IPython 魔法命令

与标准的Python shell相比,魔法命令或魔法函数是IPython提供的重要增强功能之一。这些神奇的命令是为了解决使用Python进行数据分析时的常见问题。事实上,它们控制着IPython本身的行为。

在Python的语法不是最自然的情况下,魔法命令充当了方便的功能。它们对于在工作流程中嵌入无效的Python语法非常有用。

魔法命令的类型

有两种类型的魔法命令 –

  • 行魔法
  • 单元魔法

行魔法

它们类似于命令行调用。它们以%字符开始。该行的其余部分是它的参数,没有括号或引号。行魔法可以作为表达式使用,其返回值可以被分配给变量。

单元格魔法

它们有 %% 字符前缀。与行魔法函数不同,它们可以在其调用下的多行上操作。事实上,它们可以对收到的输入进行任意修改,甚至不需要是有效的 Python 代码。它们接收的是作为一个单一字符串的整个块。

要了解更多关于魔法函数、内置魔法和它们的文档,请使用魔法命令。特定魔法函数的信息可以通过% magicfunction? 命令获得。现在让我们来描述一些内置的行和单元格魔法命令。

内置的行魔法

%autocall [mode]

这个神奇的函数使一个函数可以自动调用,而不需要使用括号。它需要三种可能的模式参数: 0(关闭),1(智能)是默认的2(总是打开)。

IPython - 神奇的命令

%automagic

如果设置为1,魔法函数可被调用,而不需要输入初始的%。如果没有参数,它就会切换为开/关。要停用,请设置为0。

下面的例子显示了当%automagic设置为1时,魔法函数 %pwd (显示目前的工作目录)被调用,而不需要打头的%。

IPython - 神奇的命令

%cd

这行魔法改变了当前的目录。这个命令会自动维护一个你在IPython会话中访问的目录的内部列表,在变量_dh中。你也可以执行 cd -<tab>来方便地查看目录历史。

IPython - 神奇的命令

使用方法

%cd命令的使用方法如下

  • %cd <dir>魔法-将当前工作目录改为<dir>

  • %cd... – 将当前目录改为父目录

  • %cd – 改为最后访问的目录。

%dhist

这个神奇的命令打印出你在当前会话中访问过的所有目录。每次使用%cd命令,这个列表就会在 _dh 变量中更新。

IPython - 神奇的命令

%edit

这个神奇的命令调用当前操作系统的默认文本编辑器(Windows的记事本)来编辑Python脚本。该脚本在编辑器关闭时被执行。

%env

这个神奇的命令将列出所有环境变量。它还可以读取特定变量的值或设置环境变量的值。

使用方法

%cd命令可以通过以下方式使用

  • %env – 列出所有环境变量

  • % env var – 获取var的值

  • % env var val – 设置var的值

IPython - 神奇的命令

%gui [GUINAME]

当不使用参数时,该命令可以启用或禁用IPython GUI事件循环集成。如果有GUINAME参数,这个魔法将用指定的GUI工具包替换默认的GUI工具包。

编号:Sr.No. 命令和描述
1 %gui wx 启用wxPython事件循环集成
2 %gui qt4|qt 启用PyQt4事件循环集成。
3 %gui qt5 启用PyQt5事件循环集成
4 %gui gtk 启用PyGTK事件循环集成
5 %gui gtk3 启用Gtk3事件循环集成
6 %gui tk 启用Tk事件循环集成
7 %gui osx 启用Cocoa事件循环集成
8 (需要 %matplotlib 1.1)
9 %gui 停用所有事件循环集成

%lsmagic

显示当前所有可用的魔法功能

IPython - 神奇的命令

%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 工具包绘制了一个正弦波。

IPython - 神奇的命令

在使用Jupyter笔记本时,%matplotlib内联指令只在浏览器中显示绘图输出。

%notebook

该函数将当前的IPython历史转换为IPython笔记本文件,扩展名为ipynb。前面例子中的输入单元被保存为sine.ipynb

%notebook sine.ipynb

%pinfo

这个函数类似于对象的自省 ? 字符。To obtain information about an object, use the following command −

%pinfo object

这是 对象 的同义词,或者说是 对象。

%precision

这个神奇的函数将浮点结果限制为小数点后的指定数字。

IPython - 神奇的命令

%pwd

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

IPython - 神奇的命令

%pylab

这个函数用matplotlib和numpy库来填充当前IPython会话。

IPython - 神奇的命令

%recall

当执行时没有任何参数,该函数执行之前的命令。

注意,在 %recall n 中,前面的数字是输入单元的编号。因此,第n个单元格的命令被调用。你可以通过使用 %recall 1-4 这样的命令来调用部分单元格中的命令。当前的输入单元会被填充到被调用的单元中,光标会闪烁,直到按下回车键。

IPython - 神奇的命令

%run

该命令从IPython shell中运行一个Python脚本。

IPython - 神奇的命令

%time

该命令显示IPython环境执行一个Python表达式所需的时间。

IPython - 神奇的命令

%timeit

这个函数也显示IPython环境执行一个Python表达式所需的时间。Python语句或表达式的执行时间使用timeit模块。这个函数可以作为行和单元格魔法使用,这里解释一下–

  • 行模式 下,你可以为一个单行计时。

  • 单元格模式 下,第一行的语句被用作设置代码,单元格的主体被计时。单元主体可以访问设置代码中创建的任何变量。

%who

这一行神奇地打印出所有的交互式变量,并有一些最小的格式化。如果给了任何参数,只有类型与这些参数之一相匹配的变量才会被打印。

IPython - 神奇的命令

IPython自定义行魔法函数

IPython的核心库包含register_line_magic装饰器。使用这个装饰器可以将一个用户定义的函数转换为一个行魔法函数。

IPython - 神奇的命令

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程