Spec-Zone.ru › NumPy 1.21

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

Spec-Zone.ru

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