numpy.asfortranarray#

numpy.asfortranarray(a, dtype=None, *, like=None)#

返回一个在内存中按 Fortran 顺序(列主序)排列的(维度大于等于 1 的)数组。

参数:
a类数组对象

输入数组。

dtypestr 或 dtype 对象,可选

默认情况下,数据类型是从输入数据推断的。

likearray_like, optional

用于创建非 NumPy 数组的引荐对象。如果传入的 like 支持 __array_function__ 协议,则结果将由它定义。在这种情况下,它确保创建与通过此参数传入的数组兼容的数组对象。

版本 1.20.0 中新增。

返回:
outndarray

输入 a 以 Fortran 或列主序排列。

另请参阅

ascontiguousarray

将输入转换为一个连续的(C 顺序)数组。

asanyarray

将输入转换为具有行主序或列主序内存顺序的 ndarray。

要求

返回一个满足要求的 ndarray。

ndarray.flags

有关数组内存布局的信息。

示例

从一个 C 连续的数组开始

>>> import numpy as np
>>> x = np.ones((2, 3), order='C')
>>> x.flags['C_CONTIGUOUS']
True

调用 asfortranarray 会创建一个 Fortran 连续的副本

>>> y = np.asfortranarray(x)
>>> y.flags['F_CONTIGUOUS']
True
>>> np.may_share_memory(x, y)
False

现在,从一个 Fortran 连续的数组开始

>>> x = np.ones((2, 3), order='F')
>>> x.flags['F_CONTIGUOUS']
True

然后,调用 asfortranarray 会返回同一个对象

>>> y = np.asfortranarray(x)
>>> x is y
True

注意:此函数返回的数组至少具有一个维度(1-d),因此不会保留 0-d 数组。