En el tutorial de la documentación de Cython, hay declaraciones de importación y importación del módulo numpy:
import numpy as np cimport numpy as np
He encontrado que esta convención es bastante popular entre los usuarios de Npypy / Cython.
Esto me parece extraño porque ambos se nombran como np . ¿En qué parte del código, np importado / cimported se utilizan? ¿Por qué cython compiler no los confunde?
cimport my_module
da acceso a funciones o atributos de C o incluso a submódulos bajo my_module
import my_module
da acceso a funciones, atributos o submódulos de my_module
bajo my_module
.
En tu caso:
cimport numpy as np
le da acceso a la API de Numpy C, donde puede declarar búferes de matriz, tipos de variables, etc.
Y:
import numpy as np
le da acceso a las funciones NumPy-Python, como np.array
, np.linspace
, etc.
Cython maneja internamente esta ambigüedad para que el usuario no necesite usar nombres diferentes.