numpy.asarray#
- numpy.asarray(a, dtype=None, order=None, *, device=None, copy=None, like=None)#
将输入转换为数组。
- 参数:
- aarray_like
输入数据,可以转换为数组的任何形式。这包括列表、元组列表、元组、元组的元组、元组的列表和 ndarrays。
- dtype数据类型,可选
默认情况下,数据类型是从输入数据推断的。
- order{‘C’, ‘F’, ‘A’, ‘K’},可选
内存布局。‘A’ 和 ‘K’ 取决于输入数组 a 的顺序。‘C’ 行主序(C 样式),‘F’ 列主序(Fortran 样式)内存表示。‘A’(任意)表示如果a 是 Fortran 连续的则为 ‘F’,否则为 ‘C’;‘K’(保持)保留输入顺序。默认为 ‘K’。
- devicestr,可选
要放置创建数组的设备。默认值:
None
。仅用于数组 API 互操作性,因此如果传递,则必须为"cpu"
。版本 2.0.0 中的新功能。
- copybool,可选
如果
True
,则复制对象。如果None
,则仅在需要时复制对象,即如果__array__
返回副本,如果 obj 是嵌套序列,或者如果需要副本才能满足任何其他要求(dtype
、order
等)。对于False
,如果无法避免复制,则会引发ValueError
。默认值:None
。版本 2.0.0 中的新功能。
- likearray_like,可选
参考对象,允许创建不是 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