numpy.asanyarray#

numpy.asanyarray(a, dtype=None, order=None, *, like=None)#

将输入转换为 ndarray,但将 ndarray 子类传递。

参数:
aarray_like

输入数据,可以转换为数组的任何形式。这包括标量、列表、元组列表、元组、元组的元组、元组的列表以及 ndarrays。

dtype数据类型,可选

默认情况下,数据类型是从输入数据推断出来的。

order{‘C’, ‘F’, ‘A’, ‘K’},可选

内存布局。‘A’ 和 ‘K’ 取决于输入数组 a 的顺序。‘C’ 行主序 (C 样式),‘F’ 列主序 (Fortran 样式) 内存表示。‘A’ (任意) 表示如果 a 是 Fortran 连续的则为 ‘F’,否则为 ‘C’;‘K’ (保持) 保留输入顺序。默认为 ‘C’。

devicestr,可选

要放置创建数组的设备。默认值:None。仅用于 Array-API 互操作性,因此如果传递,则必须为 "cpu"

版本 2.1.0 中的新功能。

copybool,可选

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

版本 2.1.0 中的新功能。

likearray_like,可选

参考对象,允许创建非 NumPy 数组的数组。如果作为 like 传递的类数组支持 __array_function__ 协议,则结果将由它定义。在这种情况下,它确保创建与通过此参数传递的兼容的数组对象。

版本 1.20.0 中的新功能。

返回值:
outndarray 或 ndarray 子类

a 的数组解释。如果 a 是 ndarray 或 ndarray 的子类,则按原样返回,并且不执行复制。

另请参阅

asarray

类似的函数,它始终返回 ndarrays。

ascontiguousarray

将输入转换为连续数组。

asfortranarray

将输入转换为具有列主序内存顺序的 ndarray。

asarray_chkfinite

类似的函数,它检查输入是否存在 NaN 和 Inf。

fromiter

从迭代器创建数组。

fromfunction

通过在网格位置上执行函数来构造数组。

示例

将列表转换为数组

>>> a = [1, 2]
>>> import numpy as np
>>> np.asanyarray(a)
array([1, 2])

ndarray 子类的实例按原样传递

>>> a = np.array([(1., 2), (3., 4)], dtype='f4,i4').view(np.recarray)
>>> np.asanyarray(a) is a
True