c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python中如何将numpy数组转换为列表

更新时间:2023-10-25

Python中将numpy数组转换为列表

在使用Python的过程中,我们可能会遇到需要将numpy数组转换为Python标准列表的情况。Numpy提供了多种函数和方法可以方便地实现这一过程。下面将从不同的角度来讲解如何将numpy数组转换为列表。

方法一:tolist()

numpy数组对象有一个内置的方法.tolist(),可以将其转换为Python列表进行使用。

<pre class="brush:python">
import numpy as np

arr = np.array([[1, 2],[3, 4]])
lst = arr.tolist()

print(lst)
  

上述代码中,首先创建一个numpy数组对象arr,并调用numpy数组对象的tolist()方法转换为Python列表lst,然后将lst打印输出。

运行结果如下:

<pre class="brush:python">
[[1, 2], [3, 4]]
  

方法二:tolist() + for循环

我们还可以通过遍历原有numpy数组对象的每个元素,将其添加到一个新的Python列表中实现相同的转换。

<pre class="brush:python">
import numpy as np

arr = np.array([[1, 2],[3, 4]])
lst = []

for i in range(arr.shape[0]):
  sub_lst = []
  for j in range(arr.shape[1]):
     sub_lst.append(arr[i][j])
  lst.append(sub_lst)

print(lst)
  

上述代码中,创建一个空的Python列表lst,并遍历arr的每个元素,将其添加到sub_lst中,再将sub_lst添加到lst中。最后将lst打印输出。

运行结果如下:

<pre class="brush:python">
[[1, 2], [3, 4]]
  

方法三:list() + for循环

可以使用Python的内置函数list()将numpy数组对象直接转换为Python列表,组合使用for循环实现。

<pre class="brush:python">
import numpy as np

arr = np.array([[1, 2],[3, 4]])
lst = [list(x) for x in arr]

print(lst)
  

上述代码中,创建一个空的Python列表lst,并使用list()函数将arr直接转换为列表。此后使用列表推导式,将arr的每一行元素转为列表,并添加到lst中。最后输出lst。

运行结果如下:

<pre class="brush:python">
[[1, 2], [3, 4]]
  

总结

在Python中,将numpy数组对象转换为Python标准列表的方法多种多样。其中,numpy数组对象的tolist()方法是最简单、最直接的方法,而基于for循环来实现的方法更加灵活,在一些特殊的应用场景下会更为实用。另外,对于一些大型的矩阵计算,在涉及到转换过程时,可能会涉及到内存泄漏等问题,因此需要综合考虑实际应用情况,选择最适合的转换方法。