numpy.core.defchararray.chararray.flags

chararray.flags

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

笔记

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

只有UPDATEIFCOPY,WRITEABLE和ALIGNED标志可以由用户通过直接赋值到属性或字典条目或通过调用ndarray.setflags来更改。

数组标志不能任意设置:

  • UPDATEIFCOPY只能设置为False
  • 如果数据真正对齐,ALIGNED只能设置为True
  • 如果数组拥有自己的内存,或者内存的最终所有者暴露了可写缓冲区接口或者是字符串,则WRITEABLE只能设置为True

数组可以同时是C风格和Fortran风格的。这对于1维数组是清楚的,但对于更高维数组也是如此。

即使对于连续数组,对于给定维度arr.strides[dim]的步幅可以是任意如果arr.shape [dim] == 1或数组没有元素。一般认为self.strides [-1] == self.itemsize / t1>用于C型连续数组或self.strides [0] == self.itemsize Fortran风格的连续数组是真的。

属性

C_CONTIGUOUS(C) 数据位于单个C样式连续段中。
F_CONTIGUOUS(F) 数据在单个Fortran风格的连续段中。
OWNDATA(O) 数组拥有它使用的内存或从另一个对象借用它。
写(W) 数据区可以写入。将此设置为False将锁定数据,使其为只读。视图(切片等)在创建时从其基本数组继承WRITEABLE,但随后可写锁定数组的视图,同时基本数组保持可写。(相反的是不正确的,因为锁定的数组的视图可能不可写。但是,当前,锁定基础对象不会锁定已经引用它的任何视图,因此在这种情况下,可以通过先前创建的可写视图来更改已锁定数组的内容。)尝试更改不可写入的数组会引发RuntimeError异常。
对齐(A) 数据和所有元素对于硬件适当地对齐。
UPDATEIFCOPY(U) 这个数组是一些其他数组的副本。当此数组被释放时,基数组将使用此数组的内容进行更新。
FNC F_CONTIGUOUS而不是C_CONTIGUOUS。
FORC F_CONTIGUOUS或C_CONTIGUOUS(单段测试)。
BEHAVED(B) 对齐和可写。
卡雷(CA) BEHAVED和C_CONTIGUOUS。
FARRAY(FA) BEHAVED和F_CONTIGUOUS而不是C_CONTIGUOUS。