numpy.recarray.flags #

属性

重新排列。标志#

有关阵列内存布局的信息。

笔记

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

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

数组标志不能任意设置:

  • 只能设置 WRITEBACKIFCOPY False

  • True仅当数据真正对齐时才能设置 ALIGNED 。

  • True仅当数组拥有自己的内存或内存的最终所有者公开可写缓冲区接口或者是字符串时,才能设置 WRITEABLE 。

数组可以同时是 C 风格和 Fortran 风格的连续数组。对于一维数组来说这是很明显的,但对于更高维数组来说也是如此。

即使对于连续数组,如果 数组没有元素,给定维度的步长也 arr.strides[dim]可能是任意的。 对于 C 风格的连续数组或Fortran 风格的连续数组,通常并不成立。arr.shape[dim] == 1self.strides[-1] == self.itemsizeself.strides[0] == self.itemsize

属性
C_连续 (C)

数据位于单个 C 风格的连续段中。

F_连续 (F)

数据位于单个 Fortran 风格的连续段中。

自有数据 (O)

数组拥有它使用的内存或从另一个对象借用内存。

可写(W)

数据区可写入。将其设置为 False 会锁定数据,使其成为只读。视图(切片等)在创建时从其基数组继承 WRITEABLE,但可写数组的视图随后可能会被锁定,而基数组仍保持可写状态。 (反之则不然,因为锁定数组的视图可能无法写入。但是,目前锁定基础对象不会锁定任何已经引用它的视图,因此在这种情况下可以更改内容尝试更改不可写数组会引发 RuntimeError 异常。

对齐 (A)

数据和所有元素都针对硬件进行了适当的对齐。

回写复制 (X)

该数组是其他数组的副本。必须先调用 C-API 函数 PyArray_ResolveWritebackIfCopy,然后才能使用该数组的内容更新基本数组的分配。

FNC

F_CONTIGUOUS 而不是 C_CONTIGUOUS。

福尔克

F_CONTIGUOUS 或 C_CONTIGUOUS(单段测试)。

行为(B)

对齐且可写。

卡雷(加利福尼亚州)

行为和 C_CONTIGUOUS。

法雷 (FA)

BEHAVED 是 F_CONTIGUOUS,而不是 C_CONTIGUOUS。