numpy.ma.MaskedArray.flags#

attribute

ma.MaskedArray.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 异常.

已对齐 (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.