在 Python 中将 NumPy 数组转换为列表

Manav Narula 2023年10月10日
  1. 使用 tolist() 方法将一个 NumPy 数组转换为列表
  2. 使用 for 循环将 Python 中的 NumPy 数组转换为列表
在 Python 中将 NumPy 数组转换为列表

列表和数组是 Python 中两个最基本且最常用的集合对象。

它们都是可变的,用于以通用名称存储元素的集合,并且每个元素都有可用于访问它的特定位置。

但是,有一些显着差异。列表已经在 Python 中内置,而对于数组,我们需要导入 arraysNumPy 模块,并在使用它们之前声明数组。数组还可以更有效地将数据存储在内存中,并被广泛用于数学运算。

在本教程中,我们将把一个 numpy 数组转换为一个列表。

使用 tolist() 方法将一个 NumPy 数组转换为列表

NumPy 数组的 tolist() 方法可以将 NumPy 数组转换为列表。

例如,

import numpy as np

oned = np.array([[1, 2, 3]])
twod = np.array([[1, 2, 3], [4, 5, 6]])

print(oned.tolist())
print(twod.tolist())

输出:

[[1, 2, 3]]
[[1, 2, 3], [4, 5, 6]]

请注意,此方法将整个数组视为一个元素。这就是为什么当我们将其与二维数组一起使用时,它会返回列表列表。

为了避免这种情况,我们可以将 tolist()flatten()ravel() 方法一起使用,它们可以将 N-D 数组转换为线性一维数组。这两种方法执行相同的功能。不同之处在于 ravel() 方法返回数组的参考视图并影响原始数组,而 flatten() 方法对数组的副本起作用。因此,ravel() 函数被认为速度更快,占用的内存更少。

以下代码显示了这些函数的用法。

import numpy as np

oned = np.array([1, 2, 3])
twod = np.array([[1, 2, 3], [4, 5, 6]])

print(oned.flatten().tolist())
print(twod.flatten().tolist())


print(oned.ravel().tolist())
print(twod.ravel().tolist())

输出:

[1, 2, 3]
[1, 2, 3, 4, 5, 6]
[1, 2, 3]
[1, 2, 3, 4, 5, 6]

使用 for 循环将 Python 中的 NumPy 数组转换为列表

对于那些刚接触编程或想要定制最终列表的人来说,这只是一种基本方法。我们遍历一个数组,并将每个元素分别附加到一个空列表中。以下代码实现了这一点。

import numpy as np

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

for x in arr:
    lst.append(x)

print(lst)

输出:

[1, 2, 3]
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Array