numpy.require#

numpy.требовать(a, dtype=None, требования=None, *, как=None)[источник]#

Вернуть ndarray указанного типа, удовлетворяющий требованиям.

Эта функция полезна, чтобы убедиться, что массив с правильными флагами возвращается для передачи в скомпилированный код (возможно, через ctypes).

Параметры:
aarray_like

Объект для преобразования в массив, удовлетворяющий требованиям типа.

dtypeтип данных

Требуемый тип данных. Если None, сохранить текущий dtype. Если ваше приложение требует, чтобы данные были в собственном порядке байтов, включите спецификацию порядка байтов как часть спецификации dtype.

требованияstr или последовательность str

Список требований может быть любым из следующих

  • ‘F_CONTIGUOUS’ (‘F’) - обеспечить массив с непрерывностью по Фортрану

  • 'C_CONTIGUOUS' ('C') - обеспечить C-непрерывный массив

  • ‘ALIGNED’ (‘A’) - обеспечить массив с выровненным типом данных

  • 'WRITEABLE' ('W') - обеспечить записываемый массив

  • ‘OWNDATA’ (‘O’) — обеспечить, чтобы массив владел своими собственными данными

  • ‘ENSUREARRAY’, (‘E’) - обеспечить базовый массив вместо подкласса

какarray_like, необязательный

Объект-ссылка, позволяющий создавать массивы, которые не являются массивами NumPy. Если массивоподобный объект, переданный как like поддерживает __array_function__ протокол, результат будет определен им. В этом случае он гарантирует создание объекта массива, совместимого с переданным через этот аргумент.

Новое в версии 1.20.0.

Возвращает:
выходndarray

Массив с указанными требованиями и типом, если задан.

Смотрите также

asarray

Преобразует входные данные в ndarray.

asanyarray

Преобразовать в ndarray, но пропустить подклассы ndarray.

ascontiguousarray

Преобразовать входные данные в непрерывный массив.

asfortranarray

Преобразует входные данные в ndarray с порядком памяти по столбцам.

ndarray.flags

Информация о расположении памяти массива.

Примечания

Возвращаемый массив будет гарантированно иметь перечисленные требования путём создания копии при необходимости.

Примеры

>>> import numpy as np
>>> x = np.arange(6).reshape(2,3)
>>> x.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : False
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
>>> y = np.require(x, dtype=np.float32, requirements=['A', 'O', 'W', 'F'])
>>> y.flags
  C_CONTIGUOUS : False
  F_CONTIGUOUS : True
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False