我发现,如果我导入包,我需要快捷方式,我必须写
Import numpy.linalg as lg
但我不知道在这些格式类型中编写import指令的目的是什么,
import numpy.linalg
import numpy.numpy.polynomial.polynomial
因为这些指令导入所有numpy
包的方式与我只编写
import numpy
最后,从let' s访问某些函数的语法说多项式是相同的
import numpy
xx = numpy.polynomial.polynomial.polydiv([2],[6])
两种情况
import numpy.numpy.polynomial.polynomial
xx = numpy.polynomial.polynomial.polydiv([2],[6])
那么这个目的是什么?
NumPy模块自存储对象在哪里?我可以找到函数,类等的定义。对于NumPy包中子文件夹中的每个模块,但无法为NumPy本身找到任何文件,例如numpy.sin()
函数。
答案 0 :(得分:3)
导入包(例如numpy
)不保证导入其子模块和子包。由于import numpy
模块本身执行的导入,numpy.linalg
碰巧加载numpy.polynomial
和numpy
,但这不是保证,并且所有NumPy子模块都不会发生这种情况。例如,
>>> import numpy
>>> numpy.distutils
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'distutils'
>>> import numpy.distutils
>>> numpy.distutils
<module 'numpy.distutils' from 'C:\Python27\lib\site-packages\numpy\distutils\__init__.pyc'>
至于numpy
命名空间中对象的源代码,它在不同对象之间变化很大,而且可能相当复杂。例如,numpy.sin
是由numpy/core/code_generators/generate_umath.py
生成的C代码编译的ufunc,该代码生成器使用来自一堆其他文件的组件。