numpy.require#
- numpy.require(a, dtype=None, requirements=None, *, like=None)[源代码]#
返回一个满足要求的指定类型的 ndarray.
这个函数用于确保返回一个带有正确标志的数组,以便传递给编译代码(可能通过ctypes).
- 参数:
- aarray_like
要转换为满足类型和要求数组的物体.
- dtype数据类型
所需的数据类型.如果为 None,则保留当前的 dtype.如果您的应用程序要求数据为本地字节顺序,请在 dtype 规范中包含一个字节顺序说明.
- requirementsstr 或 str 序列
需求列表可以是以下任何一种
‘F_CONTIGUOUS’ (‘F’) - 确保一个 Fortran 连续数组
‘C_CONTIGUOUS’ (‘C’) - 确保一个 C 连续数组
‘ALIGNED’ (‘A’) - 确保数据类型对齐的数组
‘WRITEABLE’ (‘W’) - 确保一个可写的数组
‘OWNDATA’ (‘O’) - 确保一个拥有自己数据数组
‘ENSUREARRAY’, (‘E’) - 确保一个基础数组,而不是一个子类
- likearray_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