numpy.recarray.setflags#
метод
- recarray.setflags(запись=None, выравнивать=None, uic=None)#
Установите флаги массива WRITEABLE, ALIGNED, WRITEBACKIFCOPY, соответственно.
Эти флаги с логическими значениями влияют на то, как numpy интерпретирует область памяти, используемую a (см. примечания ниже). Флаг ALIGNED может быть установлен в True только если данные фактически выровнены в соответствии с типом. Флаг WRITEBACKIFCOPY никогда не может быть установлен в True. Флаг WRITEABLE может быть установлен в True только если массив владеет своей собственной памятью, или конечный владелец памяти предоставляет интерфейс записи буфера, или является строкой. (Исключение для строк сделано, чтобы распаковка могла быть выполнена без копирования памяти.)
- Параметры:
- записьbool, необязательно
Описывает, является ли или нет a может быть записан.
- выравниватьbool, необязательно
Описывает, является ли или нет a выровнен правильно для своего типа.
- uicbool, необязательно
Описывает, является ли или нет a является копией другого "базового" массива.
Примечания
Флаги массива предоставляют информацию о том, как следует интерпретировать область памяти, используемую для массива. Используется 7 булевых флагов, из которых только три могут быть изменены пользователем: WRITEBACKIFCOPY, WRITEABLE и ALIGNED.
WRITEABLE (W) область данных доступна для записи;
ALIGNED (A) данные и шаги выровнены соответствующим образом для оборудования (как определено компилятором);
WRITEBACKIFCOPY (X) этот массив является копией другого массива (ссылается через .base). Когда вызывается функция C-API PyArray_ResolveWritebackIfCopy, базовый массив будет обновлен содержимым этого массива.
Все флаги могут быть доступны с использованием одной заглавной буквы, а также полного имени.
Примеры
>>> import numpy as np >>> 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 "
" , line 1, inValueError: cannot set WRITEBACKIFCOPY flag to True