numpy.ascontiguousarray#

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

傳回記憶體中連續的陣列 (ndim >= 1) (C 順序)。

參數:
a類陣列

輸入陣列。

dtype字串或 dtype 物件,選用

傳回陣列的資料型別。

like類陣列,選用

參考物件,用於建立非 NumPy 陣列的陣列。如果作為 like 傳入的類陣列支援 __array_function__ 協定,則結果將由其定義。在這種情況下,它可以確保建立與透過此引數傳入的物件相容的陣列物件。

在 1.20.0 版本中新增。

傳回值:
outndarray

a 具有相同形狀和內容的連續陣列,如果指定,則具有 dtype 型別。

另請參閱

asfortranarray

將輸入轉換為具有 column-major 記憶體順序的 ndarray。

require

傳回滿足需求的 ndarray。

ndarray.flags

關於陣列記憶體佈局的資訊。

範例

從 Fortran-contiguous 陣列開始

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

呼叫 ascontiguousarray 會建立 C-contiguous 副本

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

現在,從 C-contiguous 陣列開始

>>> 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 陣列。