On this page
C-Types Foreign Function Interface (numpy.ctypeslib)
- numpy.ctypeslib.as_array(obj, shape=None)[source]
- 
    Create a numpy array from a ctypes array or POINTER. The numpy array shares the memory with the ctypes object. The shape parameter must be given if converting from a ctypes POINTER. The shape parameter is ignored if converting from a ctypes array 
- numpy.ctypeslib.as_ctypes(obj)[source]
- 
    Create and return a ctypes object from a numpy array. Actually anything that exposes the __array_interface__ is accepted. 
- numpy.ctypeslib.as_ctypes_type(dtype)[source]
- 
    Convert a dtype into a ctypes type. - Parameters
- 
      - dtypedtype
- 
        The dtype to convert 
 
- Returns
- 
      - ctype
- 
        A ctype scalar, union, array, or struct 
 
- Raises
- 
      - NotImplementedError
- 
        If the conversion is not possible 
 
 NotesThis function does not losslessly round-trip in either direction. np.dtype(as_ctypes_type(dt))will:- insert padding fields
- reorder fields to be sorted by offset
- discard field titles
 as_ctypes_type(np.dtype(ctype))will:- discard the class names of ctypes.Structures andctypes.Unions
- convert single-element ctypes.Unions into single-elementctypes.Structures
- insert padding fields
 
- numpy.ctypeslib.ctypes_load_library(*args, **kwds)[source]
- 
    ctypes_load_libraryis deprecated, useload_libraryinstead!It is possible to load a library using >>> lib = ctypes.cdll[<full_path_name>] # doctest: +SKIP But there are cross-platform considerations, such as library file extensions, plus the fact Windows will just load the first library it finds with that name. NumPy supplies the load_library function as a convenience. - Parameters
- 
      - libnamestr
- 
        Name of the library, which can have ‘lib’ as a prefix, but without an extension. 
- loader_pathstr
- 
        Where the library can be found. 
 
- Returns
- 
      - ctypes.cdll[libpath]library object
- 
        A ctypes library object 
 
- Raises
- 
      - OSError
- 
        If there is no library with the expected extension, or the library is defective and cannot be loaded. 
 
 
- numpy.ctypeslib.load_library(libname, loader_path)[source]
- 
    It is possible to load a library using >>> lib = ctypes.cdll[<full_path_name>] # doctest: +SKIP But there are cross-platform considerations, such as library file extensions, plus the fact Windows will just load the first library it finds with that name. NumPy supplies the load_library function as a convenience. - Parameters
- 
      - libnamestr
- 
        Name of the library, which can have ‘lib’ as a prefix, but without an extension. 
- loader_pathstr
- 
        Where the library can be found. 
 
- Returns
- 
      - ctypes.cdll[libpath]library object
- 
        A ctypes library object 
 
- Raises
- 
      - OSError
- 
        If there is no library with the expected extension, or the library is defective and cannot be loaded. 
 
 
- numpy.ctypeslib.ndpointer(dtype=None, ndim=None, shape=None, flags=None)[source]
- 
    Array-checking restype/argtypes. An ndpointer instance is used to describe an ndarray in restypes and argtypes specifications. This approach is more flexible than using, for example, POINTER(c_double), since several restrictions can be specified, which are verified upon calling the ctypes function. These include data type, number of dimensions, shape and flags. If a given array does not satisfy the specified restrictions, aTypeErroris raised.- Parameters
- 
      - dtypedata-type, optional
- 
        Array data-type. 
- ndimint, optional
- 
        Number of array dimensions. 
- shapetuple of ints, optional
- 
        Array shape. 
- flagsstr or tuple of str
- 
        Array flags; may be one or more of: - C_CONTIGUOUS / C / CONTIGUOUS
- F_CONTIGUOUS / F / FORTRAN
- OWNDATA / O
- WRITEABLE / W
- ALIGNED / A
- WRITEBACKIFCOPY / X
- UPDATEIFCOPY / U
 
 
- Returns
- 
      - klassndpointer type object
- 
        A type object, which is an _ndtprinstance containing dtype, ndim, shape and flags information.
 
- Raises
- 
      - TypeError
- 
        If a given array does not satisfy the specified restrictions. 
 
 Examples>>> clib.somefunc.argtypes = [np.ctypeslib.ndpointer(dtype=np.float64, ... ndim=1, ... flags='C_CONTIGUOUS')] ... >>> clib.somefunc(np.array([1, 2, 3], dtype=np.float64)) ...
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
 https://numpy.org/doc/1.19/reference/routines.ctypeslib.html