关于python:np.函数和函数的区别

The difference between np.function and function

本问题已经有最佳答案,请猛点这里访问。

我们可以导入numpy并将其功能直接用于:

1
2
3
from numpy import *

a = arraay([1,2,3]) # and it works well.

为什么有些人使用以下方法?

1
2
3
import numpy as np

a= np.array([1,2,3])


区别很简单:from numpy import *将所有名称从顶层numpy模块导入到当前的"module"(名称空间)中。如果您使用np.xxximport numpy as np只会使顶级numpy模块可用。

但是,有一个原因是您不应该使用from any_module import *:它可能只是覆盖现有的名称。例如,numpy有自己的anymaxallmin函数,这些函数可以很好地隐藏内置的python anymax…。函数(非常常见的"gotcha")。

我的建议是:避免使用from numpy import *,即使它看起来比一直输入np.更省力!


这是一个整洁但又一致的问题:您可能有多个来自不同模块的同名函数(例如,在numpy中有一个称为"random"的函数,但在scipy等其他包中也有),因此,重要的是要指出您使用的确切函数来自哪个确切的模块。这个链接有很好的解释,并指出了代码可读性。