原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.recarray.setflags.html
校对:(虚位以待)
recarray.
setflags
(write=None, align=None, uic=None)分别设置数组标志WRITEABLE,ALIGNED和UPDATEIFCOPY。
这些布尔值标志影响numpy如何解释a使用的内存区域(请参见下面的注释)。如果数据实际根据类型对齐,则ALIGNED标志只能设置为True。UPDATEIFCOPY标志永远不能设置为True。如果数组拥有自己的内存,或者内存的最终所有者暴露了可写缓冲区接口,或者是字符串,那么标志WRITEABLE只能设置为True。(字符串的例外,使得可以在不复制内存的情况下完成取消复制。)
参数: | 写:bool,可选
align:bool,可选
uic:bool,可选
|
---|
笔记
数组标志提供关于如何解释用于数组的存储区的信息。有6个布尔标志在使用,其中只有三个可以由用户更改:UPDATEIFCOPY,WRITEABLE和ALIGNED。
WRITEABLE(W)数据区可以写入;
ALIGNED(A)数据和步长适合硬件(由编译器确定);
UPDATEIFCOPY(U)这个数组是一些其他数组的副本(由.base引用)。当此数组被释放时,基数组将使用此数组的内容进行更新。
所有标志可以使用它们的第一个(大写)字母以及全名来访问。
例子
>>> 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
UPDATEIFCOPY : False
>>> y.setflags(write=0, align=0)
>>> y.flags
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : False
ALIGNED : False
UPDATEIFCOPY : False
>>> y.setflags(uic=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: cannot set UPDATEIFCOPY flag to True