Spec-Zone.ru › NumPy 1.14

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-стилевыми (contiguous). Это очевидно для одномерных массивов, но может быть справедливо и для многомерных массивов.

Даже для непрерывных массивов шаг для данного измерения 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.14.5/reference/generated/numpy.ndarray.flags.html

Spec-Zone.ru

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