1

We can import numpy and use its functions directly as:

from numpy import *

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

Why do some people use the following method?

import numpy as np

a= np.array([1,2,3])
ayhan
  • 70,170
  • 20
  • 182
  • 203
TSobhy
  • 95
  • 1
  • 1
  • 9

2 Answers2

4

The difference is easy: from numpy import * imports all names from the top-level NumPy module into your current "module" (namespace). import numpy as np will just make that top-level NumPy module available if you use np.xxx.

However there is one reason why you shouldn't use from any_module import *: It may just overwrite existing names. For example NumPy has its own any, max, all and min functions, which will happily shadow the built-in Python any, max, ... functions (a very common "gotcha").

My advise: Avoid from numpy import * even if it seems like less effort than typing np. all the time!

MSeifert
  • 145,886
  • 38
  • 333
  • 352
1

It's a matter of neatness but also consistency: you might have multiple functions with the same name from different modules (for instance there's a function called "random" in Numpy, but also in other packages like SciPy) so it's important to denote which exact function you're using from which exact module. This link has a great explanation and makes the point about code readability as well.

neophlegm
  • 375
  • 1
  • 13