Spec-Zone.ru › NumPy 2.0

Интерфейс внешних функций ctypes (numpy.ctypeslib)

numpy.ctypeslib.as_array(obj, shape=None) [source]

Создание массива NumPy из массива или указателя ctypes.

Массив NumPy разделяет память с объектом ctypes.

Параметр shape должен быть задан при преобразовании из указателя ctypes. Параметр shape игнорируется при преобразовании из массива ctypes.

numpy.ctypeslib.as_ctypes(obj) [source]

Создание и возврат объекта ctypes из массива NumPy. Фактически принимается всё, что предоставляет атрибут __array_interface__.

numpy.ctypeslib.as_ctypes_type(dtype) [source]

Преобразование типа dtype в тип ctypes.

Параметры:
dtypedtype

Преобразуемый тип dtype

Возвращает:
ctype

Скаляр, объединение, массив или структура ctypes

Исключения:
NotImplementedError

Если преобразование невозможно

Примечания

Эта функция не гарантирует обратимости преобразования.

np.dtype(as_ctypes_type(dt)):

  • вставит поля заполнения
  • переупорядочит поля, отсортировав их по смещению
  • отбросит заголовки полей

as_ctypes_type(np.dtype(ctype)):

  • отбросит имена классов структур ctypes.Structure и объединений ctypes.Union
  • преобразует объединения с одним элементом ctypes.Union в структуры с одним элементом ctypes.Structure
  • вставит поля заполнения
numpy.ctypeslib.load_library(libname, loader_path) [source]

Загрузка библиотеки может быть осуществлена с помощью

>>> lib = ctypes.cdll[<full_path_name>] 

Однако существуют платформенно-зависимые соображения, такие как расширения файлов библиотек, плюс тот факт, что Windows загрузит первую библиотеку с таким именем. NumPy предоставляет функцию load_library для удобства.

Изменено в версии 1.20.0: Допускается использование libname и loader_path любого типа объекта пути.

Параметры:
libnamepath-like

Имя библиотеки, которое может начинаться с 'lib', но без расширения.

loader_pathpath-like

Местоположение библиотеки.

Возвращает:
ctypes.cdll[libpath]объект библиотеки

Объект библиотеки ctypes

Исключения:
OSError

Если библиотеки с ожидаемым расширением нет или библиотека некорректна и не может быть загружена.

numpy.ctypeslib.ndpointer(dtype=None, ndim=None, shape=None, flags=None) [source]

Проверка массивов для restype/argtypes.

Объект ndpointer используется для описания массива ndarray в спецификациях restype и argtypes. Этот подход более гибкий, чем, например, POINTER(c_double), поскольку можно указать несколько ограничений, которые проверяются при вызове функции ctypes. К ним относятся тип данных, количество измерений, форма и флаги. Если массив не удовлетворяет указанным ограничениям, возникает TypeError.

Параметры:
dtypeтип данных, необязательно

Тип данных массива.

ndimint, необязательно

Количество измерений массива.

shapeкортеж целых чисел, необязательно

Форма массива.

flagsстрока или кортеж строк

Флаги массива; могут быть одним или несколькими из следующих:

  • C_CONTIGUOUS / C / CONTIGUOUS
  • F_CONTIGUOUS / F / FORTRAN
  • OWNDATA / O
  • WRITEABLE / W
  • ALIGNED / A
  • WRITEBACKIFCOPY / X
Возвращает:
klassтип объекта ndpointer

Объект типа, являющийся экземпляром _ndtpr, содержащим информацию о dtype, ndim, shape и flags.

Исключения:
TypeError

Если заданный массив не удовлетворяет указанным ограничениям.

Примеры

>>> clib.somefunc.argtypes = [np.ctypeslib.ndpointer(dtype=np.float64,
...                                                  ndim=1,
...                                                  flags='C_CONTIGUOUS')]
... 
>>> clib.somefunc(np.array([1, 2, 3], dtype=np.float64))
... 
classnumpy.ctypeslib.c_intp

Целочисленный тип ctypes со знаком того же размера, что и numpy.intp.

В зависимости от платформы, он может быть псевдонимом для c_int, c_long или c_longlong.

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

Spec-Zone.ru

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