C-Types Foreign Function Interface (numpy.ctypeslib
)¶
-
numpy.ctypeslib.
as_array
(obj, shape=None)[source]¶ 从ctypes数组或ctypes POINTER创建numpy数组。numpy数组与ctypes对象共享内存。
如果从ctypes POINTER转换,则必须提供size参数。如果从ctypes数组转换,size参数将被忽略
-
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实例用于在resttype和argtypes规范中描述一个ndarray。此方法比使用例如
POINTER(c_double)
更灵活,因为可以指定多个限制,这些限制在调用ctypes函数时验证。这些包括数据类型,维数,形状和标志。如果给定的数组不满足指定的限制,则会引发TypeError
。参数: dtype:数据类型,可选
数组数据类型。
ndim:int,可选
数组尺寸数。
shape:ints的tuple,可选
数组形状。
标志:str或str的元组
数组标志;可以是以下的一个或多个:
- C_CONTIGUOUS / C / CONTIGUOUS
- F_CONTIGUOUS / F / FORTRAN
- OWNDATA / O
- WRITEABLE / W
- 对齐/ A
- UPDATEIFCOPY / U
返回: klass:ndpointer类型对象
类型对象,它是一个包含dtype,ndim,shape和flags信息的
_ndtpr
实例。上升: 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)) ...