NumPy C-API#
NumPy предоставляет C-API, позволяющий пользователям расширять систему и получать доступ к объекту массива для использования в других процедурах. Лучший способ по-настоящему понять C-API — прочитать исходный код. Однако, если вы не знакомы с исходным кодом (на C), это может сначала показаться пугающим. Будьте уверены, что задача становится легче с практикой, и вы можете удивиться, насколько простым может быть понимание C-кода. Даже если вы не думаете, что можете писать C-код с нуля, гораздо проще понять и изменить уже написанный исходный код, чем создать его de novo.
Расширения Python особенно просты для понимания, потому что все они имеют очень похожую структуру. Признаем, NumPy — нетривиальное расширение для Python, и может потребоваться немного больше усилий, чтобы его понять. Это особенно верно из-за техник генерации кода, которые упрощают поддержку очень похожего кода, но могут сделать код немного менее читаемым для новичков. Тем не менее, с небольшим упорством код можно понять. Я надеюсь, что это руководство по C-API поможет в процессе ознакомления с работой на уровне компиляции, которую можно выполнять с NumPy, чтобы выжать последние необходимые капли скорости из вашего кода.
- Типы Python и C-структуры
- Конфигурация системы
- API типов данных
- Array API
- Структура массива и доступ к данным
- Создание массивов
- Работа с типами
- Флаги массива
- ArrayMethod API
- API для вызова методов массива
- Функции
- Вспомогательные данные с объектной семантикой
- Итераторы массивов
- Трансляция (множественные итераторы)
- Итератор окрестности
- Скаляры массива
- Дескрипторы типов данных
- Продвижение и проверка типов данных
- Пользовательские типы данных
- Утилиты преобразования
- Включение и импорт C API
- API итератора массивов
- ufunc API
- Обобщённый API универсальных функций
- NpyString API
- Основная математическая библиотека NumPy
- API для работы с датой и временем
- Устаревшие функции C API
- Управление памятью в NumPy