numpy.ascontiguousarray#

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

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

参数:
aarray_like

输入数组。

dtype字符串或 dtype 对象,可选

返回数组的数据类型。

likearray_like,可选

一个参考对象,用于允许创建非 NumPy 数组。如果作为 like 传入的 array-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 维数组。