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

Numpy、 scypy、 matplotlib 和 pylab 是使用 python 进行计算科学的人们常用的术语。

我只是了解了一点关于 Pylab 的知识,然后我就糊涂了。 无论何时我想导入 numpy,我都可以这样做:

import numpy as np

我只是想,一旦我做到了

from pylab import *

Numpy 也将被导入(使用 np别名)。所以基本上第二个比第一个做得更多。

我只想问几个问题:

  1. Pylab 仅仅是 numpy、 scypy 和 matplotlib 的一个包装器,对吗?
  2. 由于 np 是 pylab 中的 numpy 别名,那么 pylab 中的 scipy 和 matplotlib 别名是什么呢?(据我所知,plt 是 matplotlib.pyplot 的别名,但我不知道 matplotlib 本身的别名)
79919 次浏览
  1. 不,pylabmatplotlib(在 matplotlib.pylab中)的一部分,并尝试给您一个类似 MatLab 的环境。matplotlib有许多依赖项,其中包括 numpy,它以通用别名 np导入这些依赖项。scipy不是 matplotlib的依赖项。

  2. 如果运行 ipython --pylab,自动导入将把所有来自 matplotlib.pylab的符号放入全局范围。就像你写的 numpynp别名导入。来自 matplotlib的符号可以在 mpl别名下获得。

Scipy 和 numpy 是旨在为 Python 带来高效、快速的数值计算的科学项目。

Matplotlib 是 Python 绘图库的名称。

Pyplot 是一个用于 matplotlib 的交互式 API,主要用于诸如 jupyter 之类的笔记本电脑。您通常这样使用它: import matplotlib.pyplot as plt

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

  • Pyplot + numpy

点击这里查看更多信息: Matplotlib,Pylab,Pyplot,等等: 这些和什么时候使用它们有什么区别?

由于互联网上有很多使用 pylab的例子,一些人(比如我)可能仍然对 pylab 的用法感到困惑,以下是来自官方 matplotlib 常见问题解答的一段引文:

Pylab 是一个方便的模块,它在单个名称空间中大容量导入 matplotlib.pyplot (用于绘图)和 numpy (用于数学和数组处理)。尽管许多示例使用 pylab,但不再推荐使用它。

因此,TL; DR; 不要使用 pylab,句号。根据需要分别使用 pyplot和导入 numpy

下面是 的链接以供进一步阅读和其他有用的示例。