问题:numpy,scipy,matplotlib和pylab之间的混淆
Numpy,scipy,matplotlib和pylab是使用python进行科学计算的常用术语。
我只是学习了一些有关pylab的知识,而感到困惑。每当我要导入numpy时,我都可以执行以下操作:
import numpy as np
我只是认为,一旦我这样做
from pylab import *
numpy也将被导入(使用np
别名)。所以基本上,第二个相比第一个做更多的事情。
我想问的几件事:
- pylab仅仅是numpy,scipy和matplotlib的包装吗?
- 由于NP是pylab中的numpy别名,因此pylab中的scipy和matplotlib别名是什么?(据我所知,plt是matplotlib.pyplot的别名,但我不知道matplotlib本身的别名)
回答 0
没有,
pylab
是的一部分matplotlib
(在matplotlib.pylab
),并试图给你喜欢的环境Matlab的。matplotlib
有许多依赖项,其中有一些依赖项numpy
以通用别名导入np
。scipy
不是的依赖项matplotlib
。如果运行
ipython --pylab
自动导入,则会将所有符号从中matplotlib.pylab
放入全局范围。就像您写的一样numpy
,在np
别名下导入。别名matplotlib
下的符号来自mpl
。
回答 1
Scipy和numpy是科学项目,旨在为python带来高效,快速的数值计算。
Matplotlib是python绘图库的名称。
Pyplot是matplotlib的交互式api,主要用于jupyter之类的笔记本中。您通常会这样使用它:import matplotlib.pyplot as plt
。
Pylab与pyplot相同,但是具有额外的功能(目前不鼓励使用)。
- pylab = pyplot + numpy的
在此处查看更多信息:Matplotlib,Pylab,Pyplot等:这些和何时使用它们有什么区别?
回答 2
由于某些示例(例如我)可能仍然对pylab的使用感到困惑,因为pylab
互联网上存在使用示例的示例,因此这里引用了官方matplotlib常见问题解答:
pylab是一个便捷模块,可在单个命名空间中批量导入matplotlib.pyplot(用于绘图)和numpy(用于数学以及使用数组)。尽管许多示例都使用pylab,但不再建议使用。
因此,TL; DR; 是不使用pylab,句点。根据需要分别使用pyplot
和导入numpy
。