Numpy asanyarray() 函数
Numpy asanyarray() 函数用于将输入转换为数组,但保留 ndarray 子类不变,这意味着如果输入数据不是数组,它将转换为标准 Numpy 数组。
如果输入已经是 Numpy ndarray 子类(例如,numpy.matrix 或其他自定义子类),则将按原样返回,而不会将其转换为普通的 ndarray。
除了数组之外,numpy.asanyarray() 函数的其他输入值如下:
- 标量 - 可以是任何数值。例如:3.4,5,112...
- 序列- 可以是列表、元组数据类型。例如:[1,2,3,4], ('a', 'b', 'c', 'd')
- 嵌套序列- 可以是嵌套元组或列表。例如,[[1,2,3], [4,5,6],[7,8,9]], ((12,10,45),(90,23,56))
语法
以下是 Numpy asanyarray() 函数的语法 -
numpy.asanyarray(arr, dtype=None, order=None, like=None)
参数
以下是 Numpy asanyarray() 函数的参数 -
- arr:这是必需的输入参数。它可以是任何我们想要转换为 NumPy 数组的类数组对象(例如列表、元组或其他 NumPy 数组)。
- dtype(可选):指定数组元素所需的数据类型(例如,int、float、complex、str)。如果未指定,NumPy 将根据输入对象自动考虑数据类型。
- like(可选):允许创建一个与输入对象类似但使用现有类数组对象(例如另一个 NumPy 数组)的数组。
- order(可选):指定数组的内存布局。如果对象不是数组,则新创建的数组将按 C 语言顺序(行优先)排列,除非指定了 F 顺序,在这种情况下,它将按 Fortran 顺序(列优先)排列 -
- 'C':C 风格的行优先顺序。
- 'F':Fortran 风格的列优先顺序。
- 'A':如果输入是 Fortran 连续的,则为 'F',否则为 'C'。
- 'K':这是默认值,使顺序尽可能接近输入。
返回值
此函数返回 ndarray,如果输入数据是 ndarray 或 ndarray 的子类,则按原样返回,不进行任何复制执行。
示例
以下是使用 Numpy asanyarray() 函数创建 Numpy 数组的基本示例 -
import numpy as np my_Array=np.asanyarray([1, 2, 3, 4, 5]) print("Numpy Array:",my_Array) print(type(my_Array))
输出
以下是上述代码的输出 -
Numpy 数组:[1 2 3 4 5] <class 'numpy.ndarray'>
示例:使用序列创建数组
可以使用序列(例如列表、元组或集合)创建 NumPy 数组,方法是将它们作为参数传递给 numpy.asanyarray() 函数。
在这里,我们将 my_tuple 作为参数传递给 numpy.asanyarray() 函数,并将其转换为 numpy 数组 -
#导入 numpy 模块 import numpy as np #定义元组 my_tuple=(15,25,35,45) my_Array=np.asanyarray(my_tuple) print("Numpy 数组:",my_Array) print(type(my_Array))
输出
以下是上述代码的输出 -
Numpy 数组: [15 25 35 45] <class 'numpy.ndarray'>
示例:将标量转换为数组
使用 numpy.asanyarray() 函数将标量值转换为 NumPy 数组。
在以下示例中,我们转换了 my_scalar,即将 100 作为参数传递给 numpy asanyarray(),结果是一个 NumPy 数组 -
import numpy as np #初始化标量值 my_scalar = 100 print ("输入标量:", my_scalar) out_arr = np.asanyarray(my_scalar) print ("从输入标量输出数组:", out_arr) print(type(out_arr))
输出
以下是上述代码的输出 -
输入标量:100 来自输入标量的输出数组:100 <class 'numpy.ndarray'>
示例:创建 n 维数组
我们可以通过将嵌套序列(例如嵌套列表(列表的列表)、嵌套元组(元组的元组))作为参数传递给 numpy.asanyarray() 函数来创建 n 维 NumPy 数组。但是,如果嵌套序列的大小不一致,则会引发 ValueError。
这里,我们使用 numpy.asanyarray() 创建了一个二维 Numpy 数组 -
import numpy as np #初始化标量值 my_list = [[1,2,3],[10,20,30],[100,200,300]] out_arr = np.asanyarray(my_list) print ("二维 Numpy 数组 - ") print(out_arr)
输出
以下是上述代码的输出 -
二维 Numpy 数组 - [[ 1 2 3] [ 10 20 30] [100 200 300]]
示例:将数组作为参数传递
当标准 NumPy 数组作为参数传递给 numpy.asanyarray() 函数时,该数组保持不变。但是,如果传递的是 numpy.ndarray 的子类(numpy.matrix),则会按原样返回,并保留子类类型 -
import numpy as np # 输入:NumPy 矩阵(ndarray 的子类) mat = np.matrix([[1, 2], [3, 4]]) arr1 = np.asanyarray(mat) print(type(arr1)) # 输入:标准 ndarray arr = np.array([5, 6, 7]) arr2 = np.asanyarray(arr) print(type(arr2))
输出
以下是上述代码的输出 -
<class 'numpy.matrix'> <class 'numpy.ndarray'>
numpy_array_creation_routines.html