numpy.require#

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

返回满足要求的提供的类型的 ndarray.

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

参数:
aarray_like

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

dtypedata-type

所需的数据类型.如果为 None,则保留当前 dtype.如果您的应用程序要求数据采用本地字节顺序,请将字节顺序规范作为 dtype 规范的一部分包含在内.

requirementsstr 或 str 序列

需求列表可以是以下任何一项

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

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

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

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

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

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

like类数组,可选

引用对象,允许创建非 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