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
–