numpy,scipy,matplotlib和pylab之间的混淆

时间:2012-10-20 10:44:33

标签: python numpy matplotlib scipy

Numpy,scipy,matplotlib和pylab是使用python进行科学计算的常用术语。

我只是学习了一些关于pylab的内容,我感到很困惑。 每当我想导入numpy时,我总能做到:

import numpy as np

我只是考虑,一旦我做了

from pylab import *

也将导入numpy(使用np别名)。所以基本上第二个与第一个相比做了更多的事情。

我想问几件事:

  1. 是不是pylab只是numpy,scipy和matplotlib的包装?
  2. 由于np是pylab中的numpy别名,pylab中的scipy和matplotlib别名是什么? (据我所知,plt是matplotlib.pyplot的别名,但我不知道matplotlib本身的别名)

3 个答案:

答案 0 :(得分:123)

  1. 不,pylabmatplotlib的一部分(在matplotlib.pylab中),并试图为您提供类似MatLab的环境。 matplotlib有许多依赖项,其中numpy是在公共别名np下导入的。{1}}。 scipy不是matplotlib的依赖关系。

  2. 如果您运行ipython --pylab,则自动导入会将matplotlib.pylab中的所有符号放入全局范围。就像你写的那样numpy是在np别名下导入的。 matplotlib别名下的mpl符号可用。

答案 1 :(得分:7)

Scipy and numpy 是科学项目,其目的是为python带来高效,快速的数值计算。

Matplotlib 是python绘图库的名称。

Pyplot 是matplotlib的交互式api,主要用于像jupyter这样的笔记本。您通常使用它:import matplotlib.pyplot as plt

Pylab 与pyplot相同,但具有额外功能(目前不鼓励使用它)。

  • 粗略地, pylab = pyplot + numpy

在此处查看更多信息:Matplotlib, Pylab, Pyplot, etc: What's the difference between these and when to use each?

答案 2 :(得分:1)

由于某些人(如我)可能仍然对pylab的使用感到困惑,因为互联网上有使用pylab的示例,因此这里引用了官方matplotlib常见问题解答:

  pylab是一个便捷模块,可在单个名称空间中批量导入matplotlib.pyplot(用于绘图)和numpy(用于数学以及使用数组)。尽管许多示例都使用pylab,但不再推荐使用。

所以TL; DR;是不使用pylab,句点。使用pyplot并根据需要分别导入numpy

Here is the link,以供进一步阅读和其他有用的示例。