# numpy.chararray.setflags

method

chararray.setflags(write=None, align=None, uic=None)

  Set array flags WRITEABLE, ALIGNED, WRITEBACKIFCOPY, respectively.

  These Boolean-valued flags affect how numpy interprets the memory area used by a (see Notes below). The ALIGNED flag can only be set to True if the data is actually aligned according to the type. The WRITEBACKIFCOPY and flag can never be set to True. The flag WRITEABLE can only be set to True if the array owns its own memory, or the ultimate owner of the memory exposes a writeable buffer interface, or is a string. (The exception for string is made so that unpickling can be done without copying memory.)

  Parameters:
    write bool, optional

      Describes whether or not a can be written to.

    align bool, optional

      Describes whether or not a is aligned properly for its type.

    uic bool, optional

      Describes whether or not a is a copy of another “base” array.

  Notes

  Array flags provide information about how the memory area used for the array is to be interpreted. There are 7 Boolean flags in use, only four of which can be changed by the user: WRITEBACKIFCOPY, WRITEABLE, and ALIGNED.

  WRITEABLE (W) the data area can be written to;

  ALIGNED (A) the data and strides are aligned appropriately for the hardware (as determined by the compiler);

  WRITEBACKIFCOPY (X) this array is a copy of some other array (referenced by .base). When the C-API function PyArray_ResolveWritebackIfCopy is called, the base array will be updated with the contents of this array.

  All flags can be accessed using the single (upper case) letter as well as the full name.

  Examples

      >>> 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
      >>> y.setflags(write=0, align=0)
      >>> y.flags
        C_CONTIGUOUS : True
        F_CONTIGUOUS : False
        OWNDATA : True
        WRITEABLE : False
        ALIGNED : False
        WRITEBACKIFCOPY : False
      >>> y.setflags(uic=1)
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      ValueError: cannot set WRITEBACKIFCOPY flag to True