Spec-Zone.ru › NumPy 1.18

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

Spec-Zone.ru

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