📅  最后修改于: 2020-10-27 08:06:46             🧑  作者: Mango
numpy模块提供了一个函数numpy.ndarray.tolist(),用于将数组的数据元素转换为列表。此函数将数组作为n.ndim级深度嵌套的Python标量列表返回。
简而言之,此函数将数组元素的副本作为Python列表返回。通过item函数将元素转换为最兼容的内置Python类型。当’a.ndim’为0时,列表的深度为0,它将是一个简单的Python标量,而不是任何列表。
ndarray.tolist()
此函数没有参数。
该函数返回可能嵌套的数组元素列表。
注意我们可以通过a = np.array(a.tolist())重新创建数组,但是有时会失去精度。
如果我们将a.tolist()用于一维数组,则它将与list(a)几乎相同,除了tolist将numpy标量转换为Python标量。
import numpy as np
a = np.uint32([6, 2])
a
a_list=list(a)
a_list
type(a_list[0])
a_tolist=a.tolist()
a_tolist
type(a_tolist[0])
输出:
array([6, 2], dtype=uint32)
[6, 2]
[6L, 2L]
在上面的代码中
在输出中,它显示一个列表及其类型,其元素是从源数组转换而来的。
对于二维数组,tolist是递归应用的。
import numpy as np
a = np.array([[11, 21], [31, 41]])
b=a.tolist()
a
b
输出:
array([[11, 21],
[31, 41]])
[[11, 21], [31, 41]]
在上面的代码中
在输出中,它显示了一个列表,其元素是从源数组转换而来的。
import numpy as np
x = np.array(5)
list(x)
y=x.tolist()
y
输出:
Traceback (most recent call last):
File "", line 1, in
TypeError: iteration over a 0-d array
5