Python 数组 API 支持#
备注
cupy.array_api 将在 CuPy v14 中被移除,因为它的 NumPy 对应物 numpy.array_api 已被移除。根模块 cupy.* 现在与数组 API 规范兼容,因为它反映了 NumPy v2 API。使用 Array API 兼容库 开发与各种数组库(包括 CuPy、NumPy 和 PyTorch)兼容的应用程序。
Python 数组 API 标准 旨在为社区开发的数组和张量库提供一套连贯的 API,以便在其基础上进行构建。这通过提供具体的函数签名、语义和覆盖范围,解决了社区中 API 碎片化的问题,从而能够编写后端无关的代码,提高可移植性。
CuPy 提供了基于 NumPy 的 NEP-47 的 实验性 支持,该标准基于 v2021 标准。所有功能都可以通过 cupy.array_api 命名空间访问。
NumPy 的 Array API 标准兼容性 是更好地理解主命名空间下的 API 与 array_api 命名空间下 API 之间差异的一个绝佳起点。但请记住,NumPy 和 CuPy 之间的关键区别在于我们是一个仅限 GPU 的库,因此 CuPy 用户应注意潜在的 设备管理 问题。与常规 CuPy 代码中一样,可以通过 Device 对象指定要使用的 GPU,请参阅 设备管理。GPU 相关的语义(例如流、异步性等)也同样被尊重。最后,请记住,虽然标准中已经纠正了一些差异,但 NumPy 和 CuPy 之间仍然存在 差异。
- 数组 API 函数
abs()acos()acosh()add()all()any()arange()argmax()argmin()argsort()asarray()asin()asinh()atan()atan2()atanh()bitwise_and()bitwise_invert()bitwise_left_shift()bitwise_or()bitwise_right_shift()bitwise_xor()broadcast_arrays()broadcast_to()can_cast()ceil()concat()cos()cosh()divide()empty()empty_like()equal()exp()expand_dims()expm1()eye()finfo()flip()floor()floor_divide()from_dlpack()full()full_like()greater()greater_equal()iinfo()isfinite()isinf()isnan()less()less_equal()linspace()log()log10()log1p()log2()logaddexp()logical_and()logical_not()logical_or()logical_xor()matmul()meshgrid()multiply()negative()nonzero()not_equal()ones()ones_like()permute_dims()positive()pow()remainder()reshape()result_type()roll()round()sign()sin()sinh()sort()sqrt()square()squeeze()stack()subtract()take()tan()tanh()tril()triu()trunc()unique_all()unique_inverse()unique_values()where()zeros()zeros_like()
- Array API 兼容对象