numpy.ndarray.setflags
метод
- ndarray.setflags(write=None, align=None, uic=None)
-
Устанавливает флаги массива WRITEABLE, ALIGNED, (WRITEBACKIFCOPY и UPDATEIFCOPY), соответственно.
Эти булевы флаги влияют на то, как numpy интерпретирует область памяти, используемую
a\n (см. Примечания ниже). Флаг ALIGNED может быть установлен только в True, если данные фактически выровнены в соответствии с типом. Флаги WRITEBACKIFCOPY и (устаревший) UPDATEIFCOPY никогда не могут быть установлены в True. Флаг WRITEABLE может быть установлен в True только в том случае, если массив владеет собственной памятью, или конечный владелец памяти предоставляет интерфейс записываемого буфера, или это строка. (Исключение для строки сделано для того, чтобы распаковка могла быть выполнена без копирования памяти.)- Параметры
-
- writebool, необязательно
-
Определяет, можно ли записать в
a. - alignbool, необязательно
-
Определяет, правильно ли
aвыровнен для своего типа. - uicbool, необязательно
-
Определяет, является ли
aкопией другого массива «базы».
Примечания
Флаги массива предоставляют информацию о том, как область памяти, используемая для массива, должна быть интерпретирована. Используется 7 булевых флагов, только 4 из которых могут быть изменены пользователем: WRITEBACKIFCOPY, UPDATEIFCOPY, WRITEABLE и ALIGNED.
WRITEABLE (W) область данных может быть записана;
ALIGNED (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
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.ndarray.setflags.html