numpy.ndarray.flags#
属性
- ndarray.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)
数据和所有元素都已针对硬件进行了适当的对齐.
- 写回IfCopy (X)
此数组是某个其他数组的副本.必须先调用 C-API 函数 PyArray_ResolveWritebackIfCopy,然后才能取消分配,以便使用此数组的内容更新基本数组.
- FNC
F_CONTIGUOUS 且不是 C_CONTIGUOUS.
- FORC
F_CONTIGUOUS 或 C_CONTIGUOUS(单段测试).
- 行为良好 (B)
ALIGNED 且 WRITEABLE.
- CARRAY (CA)
BEHAVED 且 C_CONTIGUOUS.
- FARRAY (FA)
BEHAVED 且 F_CONTIGUOUS 且不是 C_CONTIGUOUS.