numpy.matrix.flags#
属性
- matrix.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]
的步长可能是任意的。它通常不认为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。