cupy.isfortran#

cupy.isfortran(a)[源代码][源代码]#

如果数组是Fortran连续的但*不是*C连续的,则返回True。

如果你只想检查一个数组是否是Fortran连续的,请使用 a.flags.f_contiguous

参数:

a (cupy.ndarray) – 输入数组。

返回:

返回值,如果 a 是 Fortran 连续的但不是 C 连续的,则为 True。

返回类型:

bool

参见

isfortran()

示例

cupy.array 允许指定数组在内存中是按 C 连续顺序(最后一个索引变化最快)还是 FORTRAN 连续顺序(第一个索引变化最快)写入。

>>> a = cupy.array([[1, 2, 3], [4, 5, 6]], order='C')
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> cupy.isfortran(a)
False
>>> b = cupy.array([[1, 2, 3], [4, 5, 6]], order='F')
>>> b
array([[1, 2, 3],
       [4, 5, 6]])
>>> cupy.isfortran(b)
True

C 顺序数组的转置是 FORTRAN 顺序数组。

>>> a = cupy.array([[1, 2, 3], [4, 5, 6]], order='C')
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> cupy.isfortran(a)
False
>>> b = a.T
>>> b
array([[1, 4],
       [2, 5],
       [3, 6]])
>>> cupy.isfortran(b)
True

即使C顺序数组也是FORTRAN顺序的,它们仍会被评估为False。

>>> cupy.isfortran(np.array([1, 2], order='F'))
False