📜  Python numpy ndarray.tolist()

📅  最后修改于: 2020-10-27 08:06:46             🧑  作者: Mango

Python的numpy.ndarray.tolist()

numpy模块提供了一个函数numpy.ndarray.tolist(),用于将数组的数据元素转换为列表。此函数将数组作为n.ndim级深度嵌套的Python标量列表返回。

简而言之,此函数将数组元素的副本作为Python列表返回。通过item函数将元素转换为最兼容的内置Python类型。当’a.ndim’为0时,列表的深度为0,它将是一个简单的Python标量,而不是任何列表。

句法

ndarray.tolist()

参量

此函数没有参数。

返回值:y:对象或对象列表,或对象列表

该函数返回可能嵌套的数组元素列表。

注意我们可以通过a = np.array(a.tolist())重新创建数组,但是有时会失去精度。

范例1:

如果我们将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]

在上面的代码中

  • 我们导入了别名为np的numpy。
  • 我们使用np.uint32()函数创建了一个数组’a’。
  • 我们已经声明了变量’a_list’并分配了list()函数的返回值。
  • 我们尝试print“ a”,“ a_list”的值和a_list的类型。
  • 我们已经声明了变量a_tolist并分配了返回值ndarray.tolist()
  • 最后,我们尝试print’ a_tolist ‘的类型和值。

在输出中,它显示一个列表及其类型,其元素是从源数组转换而来的。

范例2:

对于二维数组,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]]

在上面的代码中

  • 我们导入了别名为np的numpy。
  • 我们使用np.array()函数创建了二维数组’a’。
  • 我们已经声明了变量’b’并分配了a.tolist()函数的返回值。
  • 最后,我们尝试print’ b ‘的值。

在输出中,它显示了一个列表,其元素是从源数组转换而来的。

范例3:

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