N 维数组 (ndarray) 是一个多维数组对象。#

cupy.ndarray 是 NumPy numpy.ndarray 的 CuPy 对应物。它提供了一个直观的接口,用于位于 CUDA 设备中的固定大小的多维数组。

关于 ndarray 的基本概念,请参考 NumPy 文档

cupy.ndarray(self, shape[, dtype, memptr, ...])

CUDA 设备上的多维数组。

转换为/自 NumPy 数组#

cupy.ndarraynumpy.ndarray 不能互相隐式转换。这意味着,NumPy 函数不能接受 cupy.ndarray 作为输入,反之亦然。

请注意,在 cupy.ndarraynumpy.ndarray 之间转换会导致主机(CPU)设备和GPU设备之间的数据传输,这在性能方面是昂贵的。

cupy.array(obj[, dtype, copy, order, subok, ...])

在当前设备上创建一个数组。

cupy.asarray(a[, dtype, order, blocking])

将对象转换为数组。

cupy.asnumpy(a[, stream, order, out, blocking])

从任意源数组返回主机内存中的数组。

代码兼容性特性#

cupy.ndarray 被设计成尽可能与 numpy.ndarray 在代码兼容性方面可互换。但有时,你需要知道你处理的是 cupy.ndarray 还是 numpy.ndarray。一个例子是在调用模块级函数如 cupy.sum()numpy.sum() 时。在这种情况下,可以使用 cupy.get_array_module()

cupy.get_array_module(*args)

返回参数的数组模块。

cupyx.scipy.get_array_module(*args)

返回参数的数组模块。