Spec-Zone.ru › NumPy 1.21

numpy.recarray.flags

атрибут

recarray.flags

Информация о расположении памяти массива.

Примечания

Объект flags может быть доступен как словарь (как в a.flags['WRITEABLE']), или с помощью имён атрибутов в нижнем регистре (как в a.flags.writeable). Короткое имя флага поддерживается только в доступе по словарю.

Только флаги WRITEBACKIFCOPY, UPDATEIFCOPY, WRITEABLE и ALIGNED могут быть изменены пользователем, посредством прямого присваивания атрибуту или элементу словаря, или вызова ndarray.setflags.

Флаги массива не могут быть заданы произвольно:

  • UPDATEIFCOPY может быть установлен только False.
  • WRITEBACKIFCOPY может быть установлен только False.
  • ALIGNED может быть установлен только True если данные действительно выровнены.
  • WRITEABLE может быть установлен только True если массив владеет своей памятью, или конечный владелец памяти предоставляет интерфейс записи в буфер или это строка.

Массивы могут быть одновременно и C-стилевыми, и Fortran-стилевыми контигуозными. Это очевидно для одномерных массивов, но также может быть истинно для массивов высших размерностей.

Даже для контигуозных массивов шаг для данного измерения arr.strides[dim] может быть произвольным, если arr.shape[dim] == 1 или массив не имеет элементов. Обычно неверно, что self.strides[-1] == self.itemsize для C-стилевых контигуозных массивов или self.strides[0] == self.itemsize для Fortran-стилевых контигуозных массивов истинно.

Атрибуты
C_CONTIGUOUS (C)

Данные находятся в одном непрерывном сегменте в стиле C.

F_CONTIGUOUS (F)

Данные находятся в одном непрерывном сегменте в стиле Fortran.

OWNDATA (O)

Массив владеет памятью, которую использует, или заимствовал её от другого объекта.

WRITEABLE (W)

Область данных может быть записана. Установка этого значения в False блокирует данные, делая их только для чтения. Вид (срез и т.д.) наследует WRITEABLE от базового массива во время создания, но вид массива с записью может быть затем заблокирован, в то время как базовый массив остаётся записываемым. (Обратное неверно, в том смысле, что вид заблокированного массива не может быть сделан записываемым. Однако в настоящее время блокировка базового объекта не блокирует никакие виды, которые уже ссылаются на него, поэтому в таком случае возможно изменить содержимое заблокированного массива через ранее созданный записываемый вид на него.) Попытка изменить массив без записи вызывает исключение RuntimeError.

ALIGNED (A)

Данные и все элементы выровнены должным образом для оборудования.

WRITEBACKIFCOPY (X)

Этот массив является копией другого массива. Функция C-API PyArray_ResolveWritebackIfCopy должна быть вызвана перед освобождением, чтобы базовый массив был обновлён содержимым этого массива.

UPDATEIFCOPY (U)

(Устаревшее, используйте WRITEBACKIFCOPY) Этот массив является копией другого массива. При освобождении этого массива базовый массив будет обновлен содержимым этого массива.

FNC

F_CONTIGUOUS и не C_CONTIGUOUS.

FORC

F_CONTIGUOUS или C_CONTIGUOUS (тест на один сегмент).

BEHAVED (B)

ALIGNED и WRITEABLE.

CARRAY (CA)

BEHAVED и C_CONTIGUOUS.

FARRAY (FA)

BEHAVED и F_CONTIGUOUS и не C_CONTIGUOUS.

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.recarray.flags.html

Spec-Zone.ru

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