numpy.ma.masked_array.setflags

方法

ma.masked_array.setflags(write=None, align=None, uic=None)

分别设置数组标志可写、对齐(writebackifcopy和updateifcopy)。

这些布尔值标志影响numpy解释 a (见下文注释)。只有数据根据类型实际对齐时,对齐标志才能设置为true。writebackifcopy和(已弃用)updateifcopy标志永远不能设置为true。如果数组拥有自己的内存,或者内存的最终所有者公开了可写缓冲区接口,或者是字符串,则只能将标志“可写”设置为“真”。(字符串例外,这样就可以在不复制内存的情况下取消拾取。)

参数
write可选的布尔

描述是否 a 可以写入。

align可选的布尔

描述是否 a 与其类型正确对齐。

uic可选的布尔

描述是否 a 是另一个“基”数组的副本。

笔记

数组标志提供有关如何解释数组使用的内存区域的信息。使用了7个布尔标记,其中只有4个可以由用户更改:writebackifcopy、updateifcopy、writeable和Aligned。

可写(W)数据区域可以写入;

对齐(a)数据和步幅与硬件适当对齐(由编译器确定);

updateifcopy(u)(已弃用),替换为writebackifcopy;

writebackifcopy(x)此数组是其他一些数组(由.base引用)的副本。调用c-api函数pyarray_resolvewritebackifcopy时,将使用此数组的内容更新基数组。

可以使用单个(大写)字母和全名访问所有标志。

实例

>>> y = np.array([[3, 1, 7],
...               [2, 0, 0],
...               [8, 5, 9]])
>>> y
array([[3, 1, 7],
       [2, 0, 0],
       [8, 5, 9]])
>>> y.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False
>>> y.setflags(write=0, align=0)
>>> y.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : False
  ALIGNED : False
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False
>>> y.setflags(uic=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: cannot set WRITEBACKIFCOPY flag to True