【问题标题】:State of the pylab import?pylab 导入的状态?
【发布时间】:2012-10-15 08:16:22
【问题描述】:

有一个提议要在 scipy、numpy 和 matplotlib 命名空间内统一、简化和建立一致性,以便:

from pylab import *

等价于:

from scipy import *
from numpy import *
from pylab import * (although I personally think it should be from matplotlib)

http://www.scipy.org/PyLab 首次编写至今已 3 年多(请参阅与该提案 http://matplotlib.1069221.n5.nabble.com/Pylab-import-error-due-to-dateutil-td39346.html 链接的邮件列表讨论)

是否有关于这方面的进展的最新信息,还是已经停滞不前?这个问题真的是在向那些一直在关注相关包 numpy、scipy、matplotlib、ipython 等的开发邮件列表的人发出呼吁

[编辑]

这不仅仅是污染顶级命名空间。它是关于统一上述四个包的 API 并简化科学编程的过程。在我个人的工作中,我发现如果我需要 numpy,我总是需要 matplotlib,而且我经常需要 scipy 的东西。

【问题讨论】:

  • from pylab import * 已经在幕后做了from numpy import *from pyplot import *。只有scipy 丢失了。
  • 添加(没有阅读提案或讨论),这显然是为了让它更像matlab/maple/IDL/。它确实污染了命名空间,但对于科学家(不是专门的程序员)来说,它确实为分析数据提供了难以置信的便利。我个人什至会添加from sympy import * 来给它一点 Mathematica 的味道 :-)。
  • 仅供参考,在此处添加from scipy import * 毫无意义。这实际上并没有从scipy 导入任何东西。它只是导入 numpy 命名空间中的所有内容(加上一两个函数,并且由于历史原因使一些 numpy 函数具有不同的默认值)。 maplotlibpylab 已经是你所描述的了。

标签: python matlab numpy matplotlib scipy


【解决方案1】:

似乎自 2009 年以来就没有讨论过它(尽管 wiki 页面在几个月前更新了)。 我同意 mpl 邮件列表中的一篇文章的观点:

>>> import this
The Zen of Python, by Tim Peters
...
Namespaces are one honking great idea -- let's do more of those!

我可以看到在项目之间拥有一致的文档策略的好处,但是拥有一个单一的命名空间我不太相信......

在实现方面,matplotlib pylab 命名空间今天仍然存在于 master 上(因此将成为即将发布的 1.2 版本的一部分),因此肯定没有短期计划来推进这项工作。我会考虑与您所指页面的作者联系,以了解他们的计划。

HTH

【讨论】:

  • 我也真诚地同意命名空间的观点。我个人不会将所有内容都导入主名称空间,但我发现每次启动脚本时都导入所有三个 np、sp 和 mpl 是多余的。我已经理所当然地导入了 os、csv、datetime、logging 和其他内容,这个建议可以简化一些事情。
  • 我也更喜欢使用命名空间,因为“显式优于隐式”,尽管有时脚本的第一部分可以是 10 个或更多导入的列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
相关资源
最近更新 更多