您的位置:

Python中ndarray如何转换为list?

介绍

在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列表。