介绍
在Python中,ndarray是用于存储多维数组的对象。 在机器学习、数据分析等领域中,使用ndarray非常普遍。 然而,有时需要将ndarray转换为列表。 这篇文章将介绍Python中如何将ndarray转换为list。
正文
方法一: tolist()
NumPy中的ndarray对象有一个tolist()方法,可以将其转换为Python list.
import numpy as np # 创建一个numpy array ndarray = np.array([[1, 2, 3], [4, 5, 6]]) # 将numpy array转换成list new_list = ndarray.tolist() print(new_list)
输出结果如下:
[[1, 2, 3], [4, 5, 6]]
方法二: flatten()
Flatten()方法用于将多维数组转换为一维数组,然后可以使用Python的tolist()方法将其转换为列表。
import numpy as np # 创建一个numpy array ndarray = np.array([[1, 2, 3], [4, 5, 6]]) # 将numpy array转换成一维数组 new_array = ndarray.flatten() # 将一维数组转换成list new_list = new_array.tolist() print(new_list)
输出结果如下:
[1, 2, 3, 4, 5, 6]
方法三: 使用numpy库中的nditer()迭代函数
使用numpy库中的nditer()函数可以迭代ndarray中的每个元素,并将它们转换为Python列表。
import numpy as np # 创建一个numpy array ndarray = np.array([[1, 2, 3], [4, 5, 6]]) # 使用nditer()迭代函数将numpy array转换成list new_list = [x.tolist() for x in np.nditer(ndarray)] print(new_list)
输出结果如下:
[[1, 2, 3], [4, 5, 6]]
方法四: 使用list()方法
还有一种方法将ndarray转换为Python列表,就是使用list()方法并传递ndarray对象。
import numpy as np # 创建一个numpy array ndarray = np.array([[1, 2, 3], [4, 5, 6]]) # 使用list()函数将numpy array转换成list new_list = list(ndarray) print(new_list)
输出结果如下:
[array([1, 2, 3]), array([4, 5, 6])]
方法五: 使用tolist()方法和deep=True参数
如果ndarray是多维数组,方法一可能不起作用。 再次使用tolist()方法并传递deep = True参数。
import numpy as np # 创建一个numpy array ndarray = np.array([[1, 2, 3], [4, 5, [6, 7]]]) # 使用tolist()函数将numpy array转换成list new_list = ndarray.tolist() print(new_list)
输出结果如下:
[[1, 2, 3], [4, 5, [6, 7]]]
小结
Python中使用NumPy库可以创建和操作ndarray对象。但是,在某些情况下需要将ndarray转换为Python列表。我们可以使用tolist()函数或flatten()函数转换为Python列表。我们还可以使用nditer()函数,list()方法或deep=True参数来转换Python列表。最后,我们应该选择最适合特定情况的方法来转换ndarray到Python列表。