numpy.isfortran

numpy.isfortran(a)[源代码]

检查数组是否是Fortran连续的,但是 not C连续的。

此函数已过时,并且由于松弛的步幅检查而发生更改,对于numpy>=1.10.0和以前版本,同一数组的返回值可能会有所不同。如果只想检查数组是否为Fortran连续使用 a.flags.f_contiguous 相反。

参数
a恩达雷

输入数组。

返回
isfortran布尔

如果数组是Fortran连续的,但 not C连续的。

实例

np.array允许指定数组是按c-连续顺序写入(最后一个索引变化最快),还是按fortran-连续顺序写入内存(第一个索引变化最快)。

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

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

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

C顺序数组的计算结果为假,即使它们也是FORTRAN顺序的。

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