numpy.require#

numpy.require(a, dtype=None, requirements=None, *, like=None)[源代码]#

返回一个满足要求的、指定类型的 ndarray。

此函数可用于确保返回具有正确标志的数组,以便传递给编译后的代码(可能通过 ctypes)。

参数:
a类数组对象

要转换为满足类型和要求的数组的对象。

dtypedata-type

必需的数据类型。如果为 None,则保留当前 dtype。如果您的应用程序需要数据为本地字节序,请将字节序规范作为 dtype 规范的一部分。

requirementsstr 或 str序列

要求列表可以是以下任意一项:

  • ‘F_CONTIGUOUS’ (‘F’) - 确保 Fortran 连续数组

  • ‘C_CONTIGUOUS’ (‘C’) - 确保 C 连续数组

  • ‘ALIGNED’ (‘A’) - 确保数据类型对齐的数组

  • ‘WRITEABLE’ (‘W’) - 确保可写数组

  • ‘OWNDATA’ (‘O’) - 确保拥有自身数据的数组

  • ‘ENSUREARRAY’, (‘E’) - 确保是基本数组,而不是子类

likearray_like, optional

用于创建非 NumPy 数组的引荐对象。如果传入的 like 支持 __array_function__ 协议,则结果将由它定义。在这种情况下,它确保创建与通过此参数传入的数组兼容的数组对象。

版本 1.20.0 中新增。

返回:
outndarray

具有指定要求和类型的数组(如果给定)。

另请参阅

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