NumPy数组转列表应使用.tolist()方法,1. 一维数组转换为普通列表;2. 二维数组转换为嵌套列表;3. 与list()不同,tolist()生成纯Python数据类型;4. 转换后int64变int,float64变float,适配标准库。

在 Python 的 NumPy 中,将数组(array)转换为列表(list)非常简单,可以直接使用 .tolist() 方法完成。
使用 tolist() 方法
.tolist() 是 NumPy 数组对象自带的方法,能将整个 array 转换为 Python 的 list,支持多维数组。
一维数组示例:import numpy as np arr = np.array([1, 2, 3]) lst = arr.tolist() print(lst) # 输出: [1, 2, 3]
二维数组示例:
arr = np.array([[1, 2], [3, 4]]) lst = arr.tolist() print(lst) # 输出: [[1, 2], [3, 4]]
与 list() 函数的区别
虽然可以使用 list(arr) 将数组转为列表,但效果不同:
立即学习“Python免费学习笔记(深入)”;
- arr.tolist():完全转换为嵌套的 Python 列表,适用于多维数据
- list(arr):对高维数组结果可能不符合预期,例如二维数组会变成“数组的列表”,而不是“列表的列表”
对比示例:
arr = np.array([[1, 2], [3, 4]])print(arr.tolist()) # [[1, 2], [3, 4]] —— 正确的嵌套列表 print(list(arr)) # [array([1, 2]), array([3, 4])] —— 不是纯 Python list
注意事项
转换后数据类型也会变为原生 Python 类型:
- NumPy 的 np.int64 会变成 Python 的 int
- NumPy 的 np.float64 会变成 Python 的 float
这对于与标准库或 JSON 等模块交互时很有帮助,因为它们通常不接受 NumPy 数据类型。
基本上就这些。用 .tolist() 是最推荐、最安全的方式。










