Spec-Zone.ru › NumPy 1.15

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

Spec-Zone.ru

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