NumPy C-API#

Остерегайтесь человека, которого не беспокоят детали.
William Feather, Sr.
Истина где-то там.
Крис Картер, Секретные материалы

NumPy предоставляет C-API, позволяющий пользователям расширять систему и получать доступ к объекту массива для использования в других процедурах. Лучший способ по-настоящему понять C-API — прочитать исходный код. Однако, если вы не знакомы с исходным кодом (на C), это может сначала показаться пугающим. Будьте уверены, что задача становится легче с практикой, и вы можете удивиться, насколько простым может быть понимание C-кода. Даже если вы не думаете, что можете писать C-код с нуля, гораздо проще понять и изменить уже написанный исходный код, чем создать его de novo.

Расширения Python особенно просты для понимания, потому что все они имеют очень похожую структуру. Признаем, NumPy — нетривиальное расширение для Python, и может потребоваться немного больше усилий, чтобы его понять. Это особенно верно из-за техник генерации кода, которые упрощают поддержку очень похожего кода, но могут сделать код немного менее читаемым для новичков. Тем не менее, с небольшим упорством код можно понять. Я надеюсь, что это руководство по C-API поможет в процессе ознакомления с работой на уровне компиляции, которую можно выполнять с NumPy, чтобы выжать последние необходимые капли скорости из вашего кода.