方法
matrix.
setflags
分别设置数组标志可写、对齐(writebackifcopy和updateifcopy)。
这些布尔值标志影响numpy解释 a (见下文注释)。只有数据根据类型实际对齐时,对齐标志才能设置为true。writebackifcopy和(已弃用)updateifcopy标志永远不能设置为true。如果数组拥有自己的内存,或者内存的最终所有者公开了可写缓冲区接口,或者是字符串,则只能将标志“可写”设置为“真”。(字符串例外,这样就可以在不复制内存的情况下取消拾取。)
描述是否 a 可以写入。
描述是否 a 与其类型正确对齐。
描述是否 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