numpy.asarray#
- numpy.asarray(a, dtype=None, order=None, *, device=None, copy=None, like=None)#
将输入转换为数组.
- 参数:
- aarray_like
可以转换为数组的任何形式的输入数据.这包括列表,元组列表,元组,元组的元组,列表的元组和ndarray.
- dtypedata-type,可选
默认情况下,数据类型从输入数据推断.
- order{‘C’, ‘F’, ‘A’, ‘K’}, 可选
内存布局.’A’ 和 ‘K’ 取决于输入数组 a 的顺序.’C’ 行优先 (C 样式),’F’ 列优先 (Fortran 样式) 内存表示.’A’(任何)表示如果 a 是 Fortran 连续的,则为 ‘F’,否则为 ‘C’;’K’(保持)保留输入顺序.默认为 ‘K’.
- devicestr, optional
放置创建的数组的设备.默认值:
None.仅用于Array-API互操作性,因此如果传递则必须为"cpu".在 2.0.0 版本加入.
- copybool,可选
如果为
True,则复制该对象.如果为None,则仅在需要时复制该对象,即如果__array__返回副本,如果 obj 是嵌套序列,或者如果需要副本以满足任何其他要求(dtype,order等).对于False,如果无法避免复制,则会引发ValueError.默认值:None.在 2.0.0 版本加入.
- like类数组,可选
引用对象,允许创建非 NumPy 数组的数组.如果作为
like传入的类数组支持__array_function__协议,则结果将由它定义.在这种情况下,它可以确保创建与通过此参数传入的对象兼容的数组对象.在 1.20.0 版本加入.
- 返回:
- outndarray
a的数组解释.如果输入已经是具有匹配 dtype 和顺序的 ndarray,则不执行复制.如果a是 ndarray 的子类,则返回基类 ndarray.
参见
asanyarray传递子类的类似函数.
ascontiguousarray将输入转换为连续数组.
asfortranarray将输入转换为具有列优先内存顺序的ndarray.
asarray_chkfinite检查输入是否为 NaN 和 Infs 的类似函数.
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