Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams Why do I have to import this from numpy if I am just referencing it from the numpy module (3 answers)
Closed 5 years ago .

I recently started coding in Python. In the beginning of my scripts I always have the following import: import numpy as np .

In one of my scripts, I use np.matlib.repmat function. It used to work ok, however recently it fails to run showing the following error:

 AttributeError: module 'numpy' has no attribute 'matlib'

I searched SO for this problem, and it looks like the error like this arises if one has a script called numpy.py in his working directory or if the installed version is different and does not contain the called module.

I didn't name any file numpy.py. I also found out that after I call:

 from numpy import matlib as mb

I can use mb.repmat. Therefore, my numpy module does contain matlib module. Can someone hint me, why I cannot call np.matlib?

This is because numpy.matlib is an optional sub-package of numpy that must be imported separately. When you import just numpy without the sub-package matlib, then Python will be looking for .matlib as an attribute of the numpy package. This attribute has not been assigned to numpy without importing numpy.matlib

If it's already answered in such detail as the link you shared, you should flag as a duplicate. – roganjosh Apr 19, 2018 at 17:25