numpy.recarray.flags#

屬性

recarray.flags#

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

註解

可以像字典一樣存取 flags 物件(如 a.flags['WRITEABLE']),或使用小寫屬性名稱(如 a.flags.writeable)。只有在字典存取中才支援短旗標名稱。

只有 WRITEBACKIFCOPY、WRITEABLE 和 ALIGNED 旗標可以由使用者更改,透過直接賦值給屬性或字典條目,或呼叫 ndarray.setflags

陣列旗標不能任意設定

  • WRITEBACKIFCOPY 只能設定為 False

  • 只有在資料真正對齊時,ALIGNED 才能設定為 True

  • 只有在陣列擁有自己的記憶體,或記憶體的最終擁有者公開可寫入的緩衝區介面,或是字串時,WRITEABLE 才能設定為 True

陣列可以同時是 C 風格和 Fortran 風格的連續的。這對於一維陣列來說很明顯,但對於更高維度的陣列也可能是如此。

即使對於連續的陣列,如果 arr.shape[dim] == 1 或陣列沒有元素,則給定維度的步幅 arr.strides[dim] 也可能是任意的。對於 C 風格的連續陣列,self.strides[-1] == self.itemsize 或對於 Fortran 風格的連續陣列,self.strides[0] == self.itemsize 通常成立。

屬性:
C_CONTIGUOUS (C)

資料在單一、C 風格的連續區段中。

F_CONTIGUOUS (F)

資料在單一、Fortran 風格的連續區段中。

OWNDATA (O)

陣列擁有它使用的記憶體,或從另一個物件借用。

WRITEABLE (W)

資料區域可以寫入。將此設定為 False 會鎖定資料,使其成為唯讀。視圖(切片等)在建立時從其基礎陣列繼承 WRITEABLE,但可寫入陣列的視圖可能會在基礎陣列保持可寫入的同時被隨後鎖定。(反之則不然,鎖定陣列的視圖可能無法設為可寫入。但是,目前,鎖定基礎物件不會鎖定任何已參考它的視圖,因此在這種情況下,可以透過先前建立的可寫入視圖來更改鎖定陣列的內容。)嘗試更改不可寫入的陣列會引發 RuntimeError 異常。

ALIGNED (A)

資料和所有元素都針對硬體適當對齊。

WRITEBACKIFCOPY (X)

此陣列是另一個陣列的副本。必須在解除分配之前呼叫 C-API 函數 PyArray_ResolveWritebackIfCopy,以將基礎陣列更新為此陣列的內容。

FNC

F_CONTIGUOUS 且非 C_CONTIGUOUS。

FORC

F_CONTIGUOUS 或 C_CONTIGUOUS(單一段落測試)。

BEHAVED (B)

ALIGNED 且 WRITEABLE。

CARRAY (CA)

BEHAVED 且 C_CONTIGUOUS。

FARRAY (FA)

BEHAVED、F_CONTIGUOUS 且非 C_CONTIGUOUS。