C-Типы внешнего интерфейса функций (numpy.ctypeslib)
-
numpy.ctypeslib.as_array(obj, shape=None)[source] -
Создать массив NumPy из массива ctypes или указателя ctypes. Массив NumPy разделяет память с объектом ctypes.
Параметр
sizeдолжен быть задан при преобразовании из указателя ctypes. Параметрsizeигнорируется при преобразовании из массива ctypes.
-
numpy.ctypeslib.as_ctypes(obj)[source] -
Создать и вернуть объект ctypes из массива NumPy. На самом деле принимается всё, что предоставляет __array_interface__.
-
numpy.ctypeslib.ctypes_load_library(*args, **kwds)[source] -
ctypes_load_libraryустарело, используйтеload_libraryвместо него!Загрузить библиотеку можно так: >>> lib = ctypes.cdll[<полный_путь_к_файлу>]
Однако есть платформенные соображения, такие как расширения файлов библиотек, а также то, что Windows загрузит первую библиотеку, найденную с этим именем. NumPy предоставляет функцию
load_libraryдля удобства.Параметры: libname : str
Имя библиотеки, которое может иметь префикс ‘lib’, но без расширения.
loader_path : str
Местоположение библиотеки.
Возвращает: ctypes.cdll[libpath] : объект библиотеки
Объект ctypes библиотеки
Исключения: OSError
Если нет библиотеки с ожидаемым расширением или библиотека некорректна и не может быть загружена.
-
numpy.ctypeslib.load_library(libname, loader_path)[source] -
Загрузить библиотеку можно так: >>> lib = ctypes.cdll[<полный_путь_к_файлу>]
Однако есть платформенные соображения, такие как расширения файлов библиотек, а также то, что Windows загрузит первую библиотеку, найденную с этим именем. NumPy предоставляет функцию
load_libraryдля удобства.Параметры: libname : str
Имя библиотеки, которое может иметь префикс ‘lib’, но без расширения.
loader_path : str
Местоположение библиотеки.
Возвращает: 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 : тип данных, необязательно
Тип данных массива.
ndim : int, необязательно
Количество измерений массива.
shape : кортеж целых чисел, необязательно
Форма массива.
flags : строка или кортеж строк
Флаги массива; могут быть один или несколько из:
- C_CONTIGUOUS / C / CONTIGUOUS
- F_CONTIGUOUS / F / FORTRAN
- OWNDATA / O
- WRITEABLE / W
- ALIGNED / A
- UPDATEIFCOPY / U
Возвращает: klass : тип объекта ndpointer
Объект типа, который является экземпляром
_ndtprсодержащего информацию о dtype, ndim, shape и флаги.Исключения: 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)) ...
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/routines.ctypeslib.html