Spec-Zone.ru › NumPy 1.19

numpy.ndarray.setflags

метод

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

Устанавливает флаги массива WRITEABLE, ALIGNED, (WRITEBACKIFCOPY и UPDATEIFCOPY) соответственно.

Эти булевы флаги влияют на то, как numpy интерпретирует область памяти, используемую a (см. Примечания ниже). Флаг ALIGNED может быть установлен в True только если данные фактически выровнены в соответствии с типом. Флаги WRITEBACKIFCOPY и (устаревший) UPDATEIFCOPY никогда не могут быть установлены в True. Флаг WRITEABLE может быть установлен в True только если массив владеет собственной памятью, или конечный владелец памяти предоставляет интерфейс записи буфера, или это строка. (Исключение для строк сделано для того, чтобы распаковку можно было выполнить без копирования памяти.)

Параметры
writebool, optional

Определяет, можно ли записывать в a.

alignbool, optional

Определяет, правильно ли a выровнен для своего типа.

uicbool, optional

Определяет, является ли a копией другого массива «базы».

Примечания

Флаги массива предоставляют информацию о том, как интерпретировать область памяти, используемую массивом. Используются 7 булевых флагов, только четыре из которых могут быть изменены пользователем: 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.ndarray.setflags.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API