Spec-Zone.ru › NumPy 2.0

NumPy C-API

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

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

  • Типы Python и C-структуры
    • Определенные новые типы Python
    • Другие C-структуры
  • Настройка системы
    • Размеры типов данных
    • Информация о платформе
    • Директивы компилятора
  • API типов данных
    • Перечисленные типы
    • Определения
    • Имена C-типов
    • Форматирование printf
  • API массивов
    • Структура массива и доступ к данным
    • Создание массивов
    • Работа с типами
    • Флаги массива
    • API ArrayMethod
    • API для вызова методов массива
    • Функции
    • Вспомогательные данные с семантикой объектов
    • Итераторы массивов
    • Вещание (много-итераторы)
    • Итератор соседства
    • Массивно-скаляры
    • Описатели типов данных
    • Продвижение и проверка типа данных
    • Пользовательские типы данных
    • Утилиты преобразования
    • Включение и импорт C API
  • API итератора массивов
    • Итератор массива
    • Пример итерации
    • Пример многократной итерации
    • Пример отслеживания множественных индексов
    • Типы данных итератора
    • Создание и уничтожение
    • Функции для итерации
    • Преобразование из предыдущих итераторов NumPy
  • API ufunc
    • Константы
    • Макросы
    • Типы
    • Функции
    • Общие функции
    • Импорт API
  • API обобщенных универсальных функций
    • Определения
    • Детали подписи
    • C-API для реализации элементарных функций
  • API NpyString
    • Примеры
    • Типы
    • Функции
  • Библиотека NumPy core math
    • Классификация чисел с плавающей точкой
    • Полезные математические константы
    • Манипулирование числами с плавающей точкой низкого уровня
    • Поддержка комплексных чисел
    • Связывание с библиотекой core math в расширении
    • Функции половинной точности
  • API дат и времени
    • Типы данных
    • Функции преобразования
  • Устаревшие API C
    • Предыстория
    • Механизм устаревания NPY_NO_DEPRECATED_API
  • Управление памятью в NumPy
    • Исторический обзор
    • Настраиваемые процедуры управления памятью в NumPy (NEP 49)
    • Что происходит при освобождении памяти, если политика не задана
    • Пример отслеживания памяти с помощью np.lib.tracemalloc_domain

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/c-api/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API