我一直看到人们在各种代码片段中使用 %pylab
,尤其是在 iPython 中。但是,我看不到 %pylab
在 Learning Python(以及我拥有的其他几本 Python 书籍)中的任何地方被提及,并且我不确定它是什么意思。
我敢肯定答案很简单,但是有人可以启发我吗?
原文由 Anton 发布,翻译遵循 CC BY-SA 4.0 许可协议
我一直看到人们在各种代码片段中使用 %pylab
,尤其是在 iPython 中。但是,我看不到 %pylab
在 Learning Python(以及我拥有的其他几本 Python 书籍)中的任何地方被提及,并且我不确定它是什么意思。
我敢肯定答案很简单,但是有人可以启发我吗?
原文由 Anton 发布,翻译遵循 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 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
%pylab
是 ipython 中的一个 _神奇函数_。ipython 中的魔术函数总是以百分号 (%) 开头,后面没有任何空格,后面是一个小文本字符串;本质上,ipython 魔术函数定义了对交互式工作特别有用的快捷方式,例如,让您了解魔术函数在 python 中的工作原理,这是我最喜欢的一些:
当在 IPython 提示符下输入
%pylab
魔法函数时,它会触发 Matplotlib 中各种模块的导入。哪些模块?好吧,那些包含在 pylab 界面下的。
很棒的 Matplotlib 绘图库有 两个 不同的界面:一个是 pythonic 界面,另一个是原始的类似 MATLAB 的界面,用于在交互式提示下绘图。
前者通常是这样导入的:
确实,pyplot自带神奇的python魔法函数
为什么有两个不同的接口? Matplotlib 的原始接口是 pylab;只是后来才添加了 pythonic 接口。当项目开始时,脚本和应用程序开发并不是 Matplotlib 的主要用例,而是在 python shell 中绘图。
显然,John Hunter(Matplotlib 的创建者)想要在 Python 中包含交互式绘图,因此他向 Fernando Perez 的 (FP) IPython 项目提交了一个补丁。 FP当时是一名博士生,他告诉JH,他将有一段时间无法复习路径。因此,JH 创建了 Matplotlib。重要的是,Matplotlib 最初是一种基于 shell 的绘图方案。
pylab界面确实更适合交互工作:
并使用 pyplot 界面: