加载numpy包的正式方法是什么?

Dar*_*ues 1 python numpy

我正在阅读ScipyNumpy的官方文档,并在那里显示使用导入的默认方式:

        >>> import numpy as np
Run Code Online (Sandbox Code Playgroud)

但有时我在代码和演示文稿中看到人们使用这种方式加载Numpy包:

        >>> from numpy import *
Run Code Online (Sandbox Code Playgroud)

我知道加载这个包的第二种方法简化了一些任务,但正如我在我的问题中所说的那样,正式的方法是什么?(虽然文档显示默认的方式)或者这是个人品味?

DSM*_*DSM 10

由于以下问题,我将回答这个问题而不是投票以基于意见的方式结束:

>>> import numpy as np
>>> bool(any(x < 3 for x in [10,20,30]))
False
>>> from numpy import *
>>> bool(any(x < 3 for x in [10,20,30]))
True
Run Code Online (Sandbox Code Playgroud)

numpy拥有自己的功能,如anymaxmin(这些只是浮现在脑海中的-这并不意味着是详尽的),它的影子内置插件.numpy版本不适合生成器表达式,并且它们不会警告您它们不会.真正发生在上面的np.any是返回一个生成器,并且生成器本身的bool值为True--这不是你想要的,你想要评估生成器的结果.

>>> np.any(x < 3 for x in [10,20,30])
<generator object <genexpr> at 0xb3ba050c>
>>> bool(_)
True
Run Code Online (Sandbox Code Playgroud)

现在公平地说,有时当我以交互方式工作时,我确实使用星形导入 - 但这只是为了方便探索,而不是真正的代码.

因此import numpy as np,远远超过from numpy import *from pylab import *使用任何环境,因为除非您已经知道危险,否则您很可能会在代码中引入错误.您总是可以直接导入特定的功能(from numpy import sin, cos等等),有时这会使一些公式看起来更漂亮.