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

时间:2015-10-21 02:23:12

标签: python numpy

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

        >>> import numpy as np

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

        >>> from numpy import *

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

2 个答案:

答案 0 :(得分: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

numpy有自己的功能,例如anymax以及min(这些只是想到的 - 这并不是详尽无遗的),哪个影子内置插件。 numpy版本不适合生成器表达式,并且它们不会警告您它们不会。真正发生在上面的是np.any正在返回一个生成器,而生成器本身的bool值为True--这不是你想要的,你想要结果评估发电机。

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

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

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

答案 1 :(得分:1)

import numpy as np可让您通过说np.method()来调用numpy的方法。如果您只使用import numpy,则可以通过说numpy.method()来调用numpy方法。如果你使用from numpy import *,你可以通过调用method()来单独使用这些方法,而不是使用*,你只需要通过说from numpy import method导入所需的特定方法,然后通过方法调用方法使用method()。就个人而言,我建议使用前两种方法之一(import numpy as npimport numpy