📜  Python| numpy ndarray.__array__()(1)

📅  最后修改于: 2023-12-03 15:34:15.245000             🧑  作者: Mango

Python | numpy ndarray.array()

NumPy是一个基于Python的科学计算库。它提供了高性能的多维数组对象和各种派生对象,如masked arrays和matrices,以及便捷的数组操作API。

ndarray是NumPy中最重要的一个对象,它是一个由同类型数据元素组成的多维数组。ndarray对象支持高效的数值计算、广播(操作不同形状数组的能力)以及某种数学坐标的操作。

ndarray.array()是用于将Python对象转换为ndarray对象的方法。该方法可以将一个Python对象转换为ndarray对象。ndarray.array()方法有两个参数:

语法:
ndarray.__array__(self, dtype=None, context=None)
参数:
  • dtype(可选):指定所需类型的数据类型。默认为None,表示返回Python对象对应的ndarray对象的数据类型。
  • context(可选):提供上下文信息,用于转换某些数据类型。

如果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,以获得一个包含浮点数的数组。