numpy.ascontiguousarray#

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

返回一个在内存中连续的数组(ndim >= 1)(C 顺序).

参数:
aarray_like

输入数组.

dtypestr 或 dtype 对象,可选

返回数组的数据类型.

likearray_like, 可选

引用对象以允许创建不是 NumPy 数组的数组.如果作为 like 传递的类数组对象支持 __array_function__ 协议,结果将由它定义.在这种情况下,它确保创建一个与此参数传递的对象兼容的数组对象.

在 1.20.0 版本加入.

返回:
outndarray

a 形状和内容相同的连续数组,如果指定了类型,则为 dtype 类型.

参见

asfortranarray

将输入转换为具有列优先内存顺序的 ndarray.

require

返回一个满足要求的 ndarray.

ndarray.flags

关于数组内存布局的信息.

示例

从一个Fortran连续数组开始:

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

调用 ascontiguousarray 会生成一个 C 连续的副本:

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

现在,从一个 C 连续数组开始:

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

然后,调用 ascontiguousarray 返回相同的对象:

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

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