📅  最后修改于: 2023-12-03 15:34:15.245000             🧑  作者: Mango
NumPy是一个基于Python的科学计算库。它提供了高性能的多维数组对象和各种派生对象,如masked arrays和matrices,以及便捷的数组操作API。
ndarray是NumPy中最重要的一个对象,它是一个由同类型数据元素组成的多维数组。ndarray对象支持高效的数值计算、广播(操作不同形状数组的能力)以及某种数学坐标的操作。
ndarray.array()是用于将Python对象转换为ndarray对象的方法。该方法可以将一个Python对象转换为ndarray对象。ndarray.array()方法有两个参数:
ndarray.__array__(self, dtype=None, context=None)
如果ndarray.array()方法被调用的对象不是一个Python对象,则将其直接返回。
import numpy as np
lst = [1, 2, 3]
arr = np.ndarray.__array__(lst)
print(arr)
# Output:
# [1 2 3]
上述代码中,我们定义了一个包含三个整数的列表lst,然后调用了ndarray.array()方法将其转换为一个包含三个整数的一维数组。最后,我们将其打印出来。
注意,如果我们不指定数据类型,则ndarray.array()方法将使用Python对象(此处为lst列表)的数据类型来创建ndarray对象。 如果Python对象包含Python对象,则将引发TypeError异常。如果我们要使所有元素的类型相同,则可以指定数据类型参数。
import numpy as np
lst = [[1, 2, 3], [4, 5, 6]]
arr = np.ndarray.__array__(lst)
print(arr)
# Output:
# TypeError: data type not understood
上述代码中,我们传递了一个列表lst,该列表包含两个包含三个整数的列表。由于Python对象包含Python对象,因此调用ndarray.array()方法将引发TypeError异常。
import numpy as np
lst = [1, 2, 3]
arr = np.ndarray.__array__(lst, dtype=np.float64)
print(arr)
# Output:
# [1. 2. 3.]
上述代码中,我们定义了一个包含三个整数的列表lst,并将其转换为包含三个浮点数的一维数组。我们指定了数据类型参数np.float64,以获得一个包含浮点数的数组。