numpy.asarray#
- numpy.asarray(a, dtype=None, order=None, *, device=None, copy=None, like=None)#
将输入转换为数组。
- 参数:
- a类数组对象
输入数据,任何可以转换为数组的形式。这包括列表、元组列表、元组、元组的元组、元组的列表和 ndarrays。
- dtype数据类型,可选
默认情况下,数据类型是从输入数据推断的。
- order{‘C’, ‘F’, ‘A’, ‘K’}, optional
输出的内存布局。'C' 表示行主序布局(C 风格),'F' 表示列主序布局(Fortran 风格)。'C' 和 'F' 会在需要时进行复制以确保输出格式。'A' (any) 等同于 'F',如果输入 a 是非连续的或 Fortran-连续的,否则,它等同于 'C'。与 'C' 或 'F' 不同,'A' 不保证结果是连续的。'K' (keep) 是默认值,并保留输入顺序以供输出。
- devicestr,可选
创建的数组所在的设备。默认为
None。仅用于 Array-API 互操作性,因此如果传递,必须是"cpu"。版本 2.0.0 中新增。
- copybool, optional
如果为
True,则复制该对象。如果为None,则仅在需要时复制该对象,即如果__array__返回副本,如果 obj 是嵌套序列,或者如果需要副本以满足任何其他要求(dtype、order等)。对于False,如果无法避免复制,它会引发ValueError。默认值:None。版本 2.0.0 中新增。
- likearray_like, optional
用于创建非 NumPy 数组的引荐对象。如果传入的
like支持__array_function__协议,则结果将由它定义。在这种情况下,它确保创建与通过此参数传入的数组兼容的数组对象。版本 1.20.0 中新增。
- 返回:
- outndarray
数组解释
a。如果输入已经是具有匹配 dtype 和 order 的 ndarray,则不执行复制。如果a是 ndarray 的子类,则返回基类 ndarray。
另请参阅
asanyarray类似的函数,可以传递子类。
ascontiguousarray将输入转换为连续数组。
asfortranarray将输入转换为具有列主序内存的 ndarray。
asarray_chkfinite类似的函数,用于检查输入中的 NaN 和 Inf。
fromiter从迭代器创建数组。
fromfunction通过在网格位置上执行函数来构建数组。
示例
将列表转换为数组
>>> a = [1, 2] >>> import numpy as np >>> np.asarray(a) array([1, 2])
现有数组不复制
>>> a = np.array([1, 2]) >>> np.asarray(a) is a True
如果设置了
dtype,则仅当 dtype 不匹配时才复制数组>>> a = np.array([1, 2], dtype=np.float32) >>> np.shares_memory(np.asarray(a, dtype=np.float32), a) True >>> np.shares_memory(np.asarray(a, dtype=np.float64), a) False
与
asanyarray相反,ndarray 子类不会被传递>>> issubclass(np.recarray, np.ndarray) True >>> a = np.array([(1., 2), (3., 4)], dtype='f4,i4').view(np.recarray) >>> np.asarray(a) is a False >>> np.asanyarray(a) is a True