Spec-Zone.ru › NumPy 1.20

numpy.chararray.setflags

метод

chararray.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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.chararray.setflags.html

Spec-Zone.ru

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