Подтвердить что ты не робот

Cython: cimport и import numpy как (оба) np

В tutorial документации Cython существуют операторы cimport и import модуля numpy:

import numpy as np
cimport numpy as np

Я нашел, что это соглашение довольно популярно среди пользователей numpy/cython.

Это выглядит странно для меня, потому что они оба называются np. В какой части кода используются импортированные /cimported np? Почему компилятор cython не путает их?

4b9b3361

Ответ 1

cimport my_module предоставляет доступ к функциям или атрибутам C или даже подмодулям в my_module

import my_module предоставляет доступ к функциям или атрибутам или подмодулям Python

В вашем случае:

cimport numpy as np

предоставляет вам доступ к API-интерфейсу Numpy C, где вы можете объявлять буферы массивов, типы переменных и т.д....

и

import numpy as np

предоставляет вам доступ к функциям NumPy-Python, таким как np.array, np.linspace и т.д.

Cython внутренне справляется с этой двусмысленностью, поэтому пользователю не нужно использовать разные имена.