在 Python 中将 NumPy 数组转换为列表
列表和数组是 Python 中两个最基本且最常用的集合对象。
它们都是可变的,用于以通用名称存储元素的集合,并且每个元素都有可用于访问它的特定位置。
但是,有一些显着差异。列表已经在 Python 中内置,而对于数组,我们需要导入 arrays
或 NumPy
模块,并在使用它们之前声明数组。数组还可以更有效地将数据存储在内存中,并被广泛用于数学运算。
在本教程中,我们将把一个 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]
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串