numpy.ma.MaskedArray.flags#

属性

ma.MaskedArray.flags#

有关数组内存布局的信息。

备注

flags 对象可以像字典一样访问(如 a.flags['WRITEABLE']),也可以使用小写属性名称访问(如 a.flags.writeable)。短标志名称仅在字典访问中受支持。

只有 WRITEBACKIFCOPY、WRITEABLE 和 ALIGNED 标志可以通过用户直接分配给属性或字典条目,或通过调用 ndarray.setflags 来更改。

数组标志不能任意设置

  • WRITEBACKIFCOPY 只能设置为 False

  • ALIGNED 只能在数据真正对齐的情况下设置为 True

  • WRITEABLE 只能在数组拥有自己的内存或内存的最终所有者公开可写缓冲区接口或为字符串的情况下设置为 True

数组可以同时是 C 样式和 Fortran 样式的连续的。对于一维数组来说很清楚,但对于更高维数组来说也可能是真的。

即使对于连续数组,给定维度 arr.strides[dim] 的步长也可能任意,如果 arr.shape[dim] == 1 或数组没有元素。它通常满足 self.strides[-1] == self.itemsize 对于 C 样式连续数组或 self.strides[0] == self.itemsize 对于 Fortran 样式连续数组为真。

属性::
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。