Numpy asarray() 函数
Numpy asarray() 函数用于将给定输入转换为数组。输入数据可以是列表、元组、标量、字符串或集合的形式。数组的数据类型根据输入数据推断。
在 Numpy 中,numpy.array() 和 numpy.asarray() 这两个函数都用于创建或将给定数据转换为 Numpy 数组。这两个函数之间的主要区别在于,numpy.array() 在原始数组中进行的更改不会反映在原始数组中。而 numpy.asarray() 会反映对原始数组所做的所有更改。
语法
以下是 Numpy asarray() 函数的语法 -
numpy.asarray(arr, dtype=None, order=None, device=None, copy=None, like=None)
参数
以下是 Numpy asarray() 函数的参数 -
- arr:这是必需的输入参数。它可以是任何类似数组的对象或任何嵌套序列。如果对象是标量,则返回一个包含该对象的零维数组。
- dtype:指定数组元素所需的数据类型(例如,int、float、complex、str)。如果未指定,NumPy 将根据输入对象自动判断数据类型。
- copy(可选):如果为 True(默认值),则始终会创建对象的新副本,即使对象已经是 NumPy 数组。如果为 False,函数将尽量避免复制数据,并尽可能仅创建输入对象的视图。
- device(可选):用于放置所创建数组的设备。默认值为 None。
- like(可选):允许创建一个与输入对象类似但使用现有类数组对象(如另一个 NumPy 数组)的数组。
- order(可选):指定数组的内存布局。如果对象不是数组,则新创建的数组将按 C 语言顺序(行优先)排列,除非指定了 F 顺序,在这种情况下,它将按 Fortran 顺序(列优先)排列 -
- 'C':C 风格的行优先顺序。
- 'F':Fortran 风格的列优先顺序。
- 'A':如果输入是 Fortran 连续的,则为 'F',否则为 'C'。
- 'K':这是默认值,使顺序尽可能接近输入。
返回值
此函数返回一个与输入数据具有相同数据类型的 NumPy 数组,除非使用 dtype 明确指定参数。
示例
以下是使用 Python numpy.asarray() 函数创建 NumPy 数组的基本示例 -
import numpy as np my_array = np.asarray([1,2,3,4],) print("Numpy 数组 :",my_array)
输出
以下是上述代码的输出 -
Numpy 数组:[1 2 3 4]
示例:使用序列创建数组
可以使用列表、元组或集合等序列创建 NumPy 数组,方法是将它们作为参数传递给 numpy.array() 函数。
这里,我们将 my_tuple 作为参数传递给 numpy.asarray() 函数,返回一个数组 -
import numpy as np my_tuple = (5, 10,15, 20) print(type(my_tuple)) my_array = np.asarray(my_tuple); print("Numpy 数组 :",my_array) print(type(my_array))
输出
以下是上述代码的输出 -
<class 'tuple'> Numpy 数组:[ 5 10 15 20] <class 'numpy.ndarray'>
示例:创建 n 维数组
numpy.asarray() 函数可以通过传递多个相同大小的序列(例如列表或元组)来创建 N 维数组。如果序列大小不同,则会引发 ValueError −
import numpy as np my_array = np.array([[10,20,30,40],[11,22,33,44]]) print("Numpy 二维数组 :") print(my_array)
输出
Numpy 二维数组: [[10 20 30 40] [11 22 33 44]]
示例:Numpy array() 与 Numpy asarray()
在 numpy.asarray() 中,对结果所做的任何更改如果输入已经是 NumPy 数组,则数组将反映在原始数组中,因为它不会创建副本。但是,在 numpy.array() 中,对新数组所做的更改不会影响原始数组,因为它会创建数据的副本。
在以下示例中,我们可以找到 numpy.array() 和 numpy.asarray() 之间的区别 -
import numpy as np # 创建数组 Original_Array = np.array([ 2, 3, 4, 5, 6]) print("原始数组 : ", Original_Array) # 为 np.array 赋值 np_array = np.array(Original_Array) Original_Array[3] = 0 print("np.array Array : ",np_array) # 为 np.asarray 赋值 np_array = np.asarray(Original_Array) print("np.asarray 数组 : ",np_array)
输出
以下是上述代码的输出 -
原始数组 : [2 3 4 5 6] np.array 数组 : [2 3 4 5 6] np.asarray 数组 : [2 3 4 0 6]
numpy_array_creation_routines.html