numpy.recarray.setflags
-
recarray.setflags(write=None, align=None, uic=None) -
Устанавливает флаги массива WRITEABLE, ALIGNED, (WRITEBACKIFCOPY и UPDATEIFCOPY), соответственно.
Эти булевы флаги влияют на то, как numpy интерпретирует область памяти, используемую
a(см. Примечания ниже). Флаг ALIGNED может быть установлен только в значение True, если данные фактически выровнены в соответствии с типом. Флаги WRITEBACKIFCOPY и (устаревший) UPDATEIFCOPY никогда не могут быть установлены в значение True. Флаг WRITEABLE может быть установлен в значение True только в том случае, если массив владеет своей собственной памятью или конечный владелец памяти предоставляет интерфейс записи в буфер или является строкой. (Исключение для строки сделано для того, чтобы распаковку можно было выполнять без копирования памяти.)Параметры: write : bool, необязательно
Определяет, можно ли записывать в
a.align : bool, необязательно
Определяет, правильно ли
aвыровнен для своего типа.uic : bool, необязательно
Определяет, является ли
aкопией другого массива «базы».Примечания
Флаги массива предоставляют информацию о том, как должна интерпретироваться область памяти, используемая для массива. Используется 7 булевых флагов, только четыре из которых может изменить пользователь: WRITEBACKIFCOPY, UPDATEIFCOPY, WRITEABLE и ALIGNED.
WRITEABLE (W) область данных может быть записана;
ALIGNED (A) данные и шаги выровнены должным образом для оборудования (как определяется компилятором);
UPDATEIFCOPY (U) (устаревший), заменён на WRITEBACKIFCOPY;
WRITEBACKIFCOPY (X) этот массив является копией какого-то другого массива (ссылка через .base). Когда вызывается функция C-API PyArray_ResolveWritebackIfCopy, массив базовых данных будет обновлён содержимым этого массива.
Все флаги могут быть получены с помощью одной (заглавной) буквы, а также полного имени.
Примеры
>>> 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
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.recarray.setflags.html