我在python 2.7
上使用ubuntu 16.04
。如下面的代码所述,我无法使用np.matlib
中的任何函数,但在导入后,可以使用它。有什么方法可以解决问题吗?提前谢谢!
$ python
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> a = np.matlib.repmat([1,1],1,2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'matlib'
>>> import numpy.matlib as npm
>>> a = npm.repmat([1,1],1,2)
>>> print a
[[1 1 1 1]]
>>>
我认为这是一个图书馆冲突,如果是这样,我怎么知道哪些冲突?
答案 0 :(得分:1)
导入包时,Python导入系统不会自动加载包的子模块。 NumPy的__init__.py
会自动加载普通import numpy
上的大多数NumPy子模块,但不包括numpy.matlib
。
在程序中的某些代码明确导入numpy.matlib
之前,numpy.matlib
将不存在,并且其内容将无法访问。
答案 1 :(得分:0)
import numpy.matlib as npm
这不会在名称空间中引入名称numpy.matlib
;它只引入了名称npm
。 Python 2.7 doc reference
如果您希望模块通过numpy.matlib
和npm
同时可用,则可以按照这种方式定义,即npm = numpy.matlib
。