Cython: importar y importar números como (ambos) np

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.