numpy.ascontiguousarray#

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

Return a contiguous array (ndim >= 1) in memory (C order).

Parameters:
aarray_like

Input array.

dtypestr or dtype object, optional

Data-type of returned array.

likearray_like, optional

Reference object to allow the creation of arrays which are not NumPy arrays. If an array-like passed in as like supports the __array_function__ protocol, the result will be defined by it. In this case, it ensures the creation of an array object compatible with that passed in via this argument.

在 1.20.0 版新加入.

Returns:
outndarray

Contiguous array of same shape and content as a, with type dtype if specified.

也參考

asfortranarray

Convert input to an ndarray with column-major memory order.

require

Return an ndarray that satisfies requirements.

ndarray.flags

Information about the memory layout of the array.

Examples

Starting with a Fortran-contiguous array:

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

Calling ascontiguousarray makes a C-contiguous copy:

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

Now, starting with a C-contiguous array:

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

Then, calling ascontiguousarray returns the same object:

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

Note: This function returns an array with at least one-dimension (1-d) so it will not preserve 0-d arrays.