Cython: cimport и импорт numpy как (оба) np

на учебник из документации Cython есть операторы cimport и import модуля numpy:

import numpy as np
cimport numpy as np

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

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

1 ответов


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

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

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

cimport numpy as np

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

и:

import numpy as np

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

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