numpy.char.chararray.setflags#
方法
- char.chararray.setflags(write=None, align=None, uic=None)#
分別設定陣列旗標 WRITEABLE、ALIGNED、WRITEBACKIFCOPY。
這些布林值旗標會影響 numpy 如何解譯 a 使用的記憶體區域(請參閱下方的「注意事項」)。只有在資料實際上根據類型對齊時,才能將 ALIGNED 旗標設定為 True。WRITEBACKIFCOPY 旗標永遠不能設定為 True。只有在陣列擁有自己的記憶體,或記憶體的最終擁有者公開可寫入的緩衝區介面,或是字串時,才能將 WRITEABLE 旗標設定為 True。(字串的例外情況是為了在不複製記憶體的情況下完成 unpickling。)
- 參數:
- writebool,選填
描述 a 是否可寫入。
- alignbool,選填
描述 a 是否針對其類型正確對齊。
- uicbool,選填
描述 a 是否為另一個「base」陣列的副本。
注意事項
陣列旗標提供有關如何解譯用於陣列的記憶體區域的資訊。目前使用 7 個布林值旗標,其中只有三個可以由使用者變更:WRITEBACKIFCOPY、WRITEABLE 和 ALIGNED。
WRITEABLE (W) 資料區域可寫入;
ALIGNED (A) 資料和 strides 已針對硬體適當對齊(由編譯器判斷);
WRITEBACKIFCOPY (X) 此陣列是另一個陣列的副本(由 .base 參考)。當呼叫 C-API 函數 PyArray_ResolveWritebackIfCopy 時,base 陣列將會使用此陣列的內容更新。
所有旗標都可以使用單個(大寫)字母以及完整名稱來存取。
範例
>>> import numpy as np >>> y = np.array([[3, 1, 7], ... [2, 0, 0], ... [8, 5, 9]]) >>> y array([[3, 1, 7], [2, 0, 0], [8, 5, 9]]) >>> y.flags C_CONTIGUOUS : True F_CONTIGUOUS : False OWNDATA : True WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False >>> y.setflags(write=0, align=0) >>> y.flags C_CONTIGUOUS : True F_CONTIGUOUS : False OWNDATA : True WRITEABLE : False ALIGNED : False WRITEBACKIFCOPY : False >>> y.setflags(uic=1) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: cannot set WRITEBACKIFCOPY flag to True