143

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 本身的别名)
4

3 回答 3

135
  1. 不,pylabmatplotlib(in matplotlib.pylab) 的一部分,并试图为您提供类似 MatLab 的环境。matplotlib有许多依赖项,numpy其中它在 common alias 下导入npscipy不是 的依赖项matplotlib

  2. 如果您运行ipython --pylab自动导入,则会将所有符号从matplotlib.pylab全局范围内。就像您写的那样,以别名numpy导入。别名下的np符号来自。matplotlibmpl

于 2012-10-20T11:22:50.887 回答
17

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

Matplotlib是 python 绘图库的名称。

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

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

  • pylab = pyplot + numpy

在此处查看更多信息:Matplotlib、Pylab、Pyplot 等:它们之间有什么区别以及何时使用它们?

于 2017-10-15T23:54:06.513 回答
4

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

pylab 是一个方便的模块,可在单个名称空间中批量导入 matplotlib.pyplot(用于绘图)和 numpy(用于数学和处理数组)。虽然很多例子都使用了pylab,但是已经不再推荐了。

所以,TL;DR;是不要使用pylab,期间。根据需要单独使用pyplot和导入。numpy

这是进一步阅读和其他有用示例的链接。

于 2019-09-13T14:24:09.190 回答