Cython: cimport and import numpy as (both) np
Question:
In the tutorial of the Cython documentation, there are cimport and import statements of numpy module:
import numpy as np
cimport numpy as np
I found this convention is quite popular among numpy/cython users.
This looks strange for me because they are both named as np.
In which part of the code, imported/cimported np are used?
Why cython compiler does not confuse them?
Answers:
cimport my_module
gives access to C functions or attributes or even sub-modules under my_module
import my_module
gives access to Python functions or attributes or sub-modules under my_module
.
In your case:
cimport numpy as np
gives you access to Numpy C API, where you can declare array buffers, variable types and so on…
And:
import numpy as np
gives you access to NumPy-Python functions, such as np.array
, np.linspace
, etc
Cython internally handles this ambiguity so that the user does not need to use different names.
In the tutorial of the Cython documentation, there are cimport and import statements of numpy module:
import numpy as np
cimport numpy as np
I found this convention is quite popular among numpy/cython users.
This looks strange for me because they are both named as np.
In which part of the code, imported/cimported np are used?
Why cython compiler does not confuse them?
cimport my_module
gives access to C functions or attributes or even sub-modules under my_module
import my_module
gives access to Python functions or attributes or sub-modules under my_module
.
In your case:
cimport numpy as np
gives you access to Numpy C API, where you can declare array buffers, variable types and so on…
And:
import numpy as np
gives you access to NumPy-Python functions, such as np.array
, np.linspace
, etc
Cython internally handles this ambiguity so that the user does not need to use different names.