numpy.require#

numpy.require(a, dtype=None, requirements=None, *, like=None)[source]#

傳回符合需求的指定類型 ndarray。

此函式可用於確保傳回具有正確旗標的陣列,以便傳遞給編譯後的程式碼(可能透過 ctypes)。

參數:
a類陣列

要轉換為符合類型和需求的陣列的物件。

dtype資料類型

所需的資料類型。如果為 None,則保留目前的 dtype。如果您的應用程式要求資料採用原生位元組順序,請在 dtype 規格中包含位元組順序規範。

requirements字串或字串序列

需求列表可以是以下任何一項

  • ‘F_CONTIGUOUS’ (‘F’) - 確保 Fortran 相鄰陣列

  • ‘C_CONTIGUOUS’ (‘C’) - 確保 C 相鄰陣列

  • ‘ALIGNED’ (‘A’) - 確保資料類型對齊的陣列

  • ‘WRITEABLE’ (‘W’) - 確保可寫入的陣列

  • ‘OWNDATA’ (‘O’) - 確保擁有自身資料的陣列

  • ‘ENSUREARRAY’, (‘E’) - 確保基礎陣列,而不是子類別

like類陣列,選填

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

在 1.20.0 版本中新增。

傳回值:
outndarray

具有指定需求和類型的陣列(如果已指定)。

另請參閱

asarray

將輸入轉換為 ndarray。

asanyarray

轉換為 ndarray,但傳遞 ndarray 子類別。

ascontiguousarray

將輸入轉換為 contiguous 陣列。

asfortranarray

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

ndarray.flags

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

註解

傳回的陣列將保證具有列出的需求,必要時會進行複製。

範例

>>> import numpy as np
>>> x = np.arange(6).reshape(2,3)
>>> x.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : False
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
>>> y = np.require(x, dtype=np.float32, requirements=['A', 'O', 'W', 'F'])
>>> y.flags
  C_CONTIGUOUS : False
  F_CONTIGUOUS : True
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False