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 版本加入.

copy布尔值, 可选

如果 True,则对象被复制.如果 None,则仅在需要时复制对象,即如果 __array__ 返回一个副本,如果 obj 是嵌套序列,或者如果需要复制以满足其他要求(dtypeorder 等).对于 False,如果无法避免复制,则会引发 ValueError.默认值:None.

在 2.0.0 版本加入.

likearray_like, 可选

引用对象以允许创建不是 NumPy 数组的数组.如果作为 like 传递的类数组对象支持 __array_function__ 协议,结果将由它定义.在这种情况下,它确保创建一个与此参数传递的对象兼容的数组对象.

在 1.20.0 版本加入.

返回:
outndarray

a 的数组解释.如果输入已经是一个具有匹配 dtype 和顺序的 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