Spec-Zone.ru › NumPy 1.20

numpy.ndarray.flags

атрибут

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

Spec-Zone.ru

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