什么是 %pylab?

新手上路,请多包涵

我一直看到人们在各种代码片段中使用 %pylab ,尤其是在 iPython 中。但是,我看不到 %pylab 在 Learning Python(以及我拥有的其他几本 Python 书籍)中的任何地方被提及,并且我不确定它是什么意思。

我敢肯定答案很简单,但是有人可以启发我吗?

原文由 Anton 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 405
2 个回答

%pylabipython 中的一个 _神奇函数_。

ipython 中的魔术函数总是以百分号 (%) 开头,后面没有任何空格,后面是一个小文本字符串;本质上,ipython 魔术函数定义了对交互式工作特别有用的快捷方式,例如,让您了解魔术函数在 python 中的工作原理,这是我最喜欢的一些:

  • 查看cwd目录内容:
   %ls

  • 要使用空命名空间在 ipython 中运行脚本,请键入空格,然后键入脚本名称:
   %run

  • _执行代码片段(特别是对于通常会导致抛出 IndentationError 的多行代码片段):_
   %paste

当在 IPython 提示符下输入 %pylab 魔法函数时,它会触发 Matplotlib 中各种模块的导入。

哪些模块?好吧,那些包含在 pylab 界面下的。

很棒的 Matplotlib 绘图库有 两个 不同的界面:一个是 pythonic 界面,另一个是原始的类似 MATLAB 的界面,用于在交互式提示下绘图。

前者通常是这样导入的:

 from matplotlib import pyplot as PLT

确实,pyplot自带神奇的python魔法函数

%pyplot

为什么有两个不同的接口? Matplotlib 的原始接口是 pylab;只是后来才添加了 pythonic 接口。当项目开始时,脚本和应用程序开发并不是 Matplotlib 的主要用例,而是在 python shell 中绘图。

显然,John Hunter(Matplotlib 的创建者)想要在 Python 中包含交互式绘图,因此他向 Fernando Perez 的 (FP) IPython 项目提交了一个补丁。 FP当时是一名博士生,他告诉JH,他将有一段时间无法复习路径。因此,JH 创建了 Matplotlib。重要的是,Matplotlib 最初是一种基于 shell 的绘图方案。

pylab界面确实更适合交互工作:

 from pylab import *

x, y = arange(10), cos(x/2)
plot(x, y)
show()

并使用 pyplot 界面:

 from matplotlib import pyplot as PLT
import numpy as NP

x, y = NP.arange(10), NP.cos(x/2)
fig = PLT.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y)
PLT.show()

原文由 doug 发布,翻译遵循 CC BY-SA 4.0 许可协议

%pylab 是输入以下所有命令的快捷方式 - 本质上是将 numpy 和 matplotlib 添加到您的会话中。这是作为过渡工具合并到 iPython 中的,目前的建议是 您不应该使用它。核心原因是以下命令集对全局命名空间的导入过多,而且它们不允许您将 matplotlib 的模式从 UI 更改为 QT 或其他。您可以在 http://nbviewer.ipython.org/github/Carreau/posts/blob/master/10-No-PyLab-Thanks.ipynb?create=1 查看历史和背后的推理。

这就是 %pylab 所做的:

 import numpy
import matplotlib
from matplotlib import pylab, mlab, pyplot
np = numpy
plt = pyplot

from IPython.core.pylabtools import figsize, getfigs

from pylab import *
from numpy import *

这是我在笔记本开头使用的:

 import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

原文由 Shital Shah 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题