返回介绍

概述

文章

用户指南

NumPy 参考手册

其他文档

C-Types 外部函数接口(numpy.ctypeslib)

发布于 2023-06-23 19:27:33 字数 5984 浏览 0 评论 0 收藏 0

从ctypes数组或指针创建numpy数组。

numpy数组与ctypes对象共享内存。

如果从ctypes指针转换,则必须给定Shape参数。 如果从ctypes数组转换,则忽略shape参数

  • numpy.ctypeslib.as_ctypes(obj)[点击查看源码]open in new window

    从numpy数组创建并返回ctypes对象。 实际上,任何公开 __array_interface__的内容都是可以接受的。

  • numpy.ctypeslib.as_ctypes_type(dtype)[点击查看源码]open in new window

    将数据类型转换为ctype类型。

    参数:

    类型描述
    dtype : dtype转换的dtype

    返回:

    类型描述
    ctypectype标量,并集,数组或结构

    异常:

    类型描述
    NotImplementedError如果无法进行转换

    注意

    此功能不会在两个方向上无损地往返。

  • numpy.ctypeslib.ctypes_load_library(*args, **kwds)[点击查看源码]open in new window

    ctypes_load_library 已弃用,请改用 load_library

    可以使用 >>> lib = ctypes.cdll[<full_path_name>] # doctest: +SKIP 加载库

    但是有跨平台的考虑,例如库文件扩展名, 此外,Windows将只加载它找到的具有该名称的第一个库。

    为方便起见,NumPy提供了load_library函数。

    参数:

    类型描述
    libname : str库的名称,可以使用‘lib’作为前缀,但不带扩展名。
    loader_path : str可以找到库的路径。

    返回:

    类型描述
    ctypes.cdll[libpath] : library object一个 ctypes 库对象

    异常:

    类型描述
    OSError如果没有具有预期扩展名的库,或者库有缺陷且无法加载。
  • numpy.ctypeslib.load_library(libname, loader_path)[点击查看源码]open in new window

    可以使用 >>> lib = ctypes.cdll[<full_path_name>] # doctest: +SKIP 加载库

    但是有跨平台的考虑,例如库文件扩展名, 此外,Windows将只加载它找到的具有该名称的第一个库。

    为方便起见,NumPy提供了load_library函数。

    参数:

    类型描述
    libname : str库的名称,可以使用‘lib’作为前缀,但不带扩展名。
    loader_path : str可以找到库的路径。

    返回:

    类型描述
    ctypes.cdll[libpath] : library object一个 ctypes 库对象

    异常:

    类型描述
    OSError如果没有具有预期扩展名的库,或者库有缺陷且无法加载。
  • numpy.ctypeslib.ndpointer(dtype=None, ndim=None, shape=None, flags=None)[点击查看源码]open in new window

    数组检查restype/argtypes。

    在restypes和argtypes规范中,ndpoint实例用于描述ndarray。 这种方法比使用 POINTER(c_double) 更灵活,因为可以指定几个限制, 这些限制在调用ctypes函数时进行验证。这些包括数据类型、维度数量、形状和标志。 如果给定的数组不满足指定的限制,则引发TypeError

    参数:

    类型描述
    dtype : data-type, optional数组数据类型。
    ndim : int, optional数组维数。
    shape : tuple of ints, optional数组形状。
    flags : str or tuple of strA数组标志;可能是以下一项或多项:

    flags 的可能项:

    • C_CONTIGUOUS / C / CONTIGUOUS
    • F_CONTIGUOUS / F / FORTRAN
    • OWNDATA / O
    • WRITEABLE / W
    • ALIGNED / A
    • WRITEBACKIFCOPY / X
    • UPDATEIFCOPY / U

    返回:

    类型描述
    klass : ndpointer type object类型对象,它是一个_ndtpr实例,包含dtype,ndim,shape和flags信息。

    异常:

    类型描述
    TypeError如果给定数组不满足指定限制。

    示例:

    >>> clib.somefunc.argtypes = [np.ctypeslib.ndpointer(dtype=np.float64,
    ...                                                  ndim=1,
    ...                                                  flags='C_CONTIGUOUS')]
    ... #doctest: +SKIP
    >>> clib.somefunc(np.array([1, 2, 3], dtype=np.float64))
    ... #doctest: +SKIP
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文