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连续数组
‘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