https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.tolist.html
https://numpy.org/devdocs/reference/generated/numpy.ndarray.tolist.html
ndarray.tolist()
Return the array as an a.ndim
-levels deep nested list of Python scalars.
将数组作为 a.ndim
-levels 深层嵌套的 Python 标量列表返回。
Return a copy of the array data as a (nested) Python list. Data items are converted to the nearest compatible builtin Python type, via the item
function.
返回数组数据的副本作为 (嵌套的) Python 列表。数据项通过 item
函数转换为最兼容的内置 Python 类型。
If a.ndim
is 0, then since the depth of the nested list is 0, it will not be a list at all, but a simple Python scalar.
如果 a.ndim
为 0,则由于嵌套列表的深度为 0,因此它根本不是列表,而是简单的 Python 标量。
Parameters
none
Returns
y : object, or list of object, or list of list of object, or …
The possibly nested list of array elements.
数组元素的可能嵌套列表。
The array may be recreated via a = np.array(a.tolist())
, although this may sometimes lose precision.
可以通过 a = np.array(a.tolist())
重新创建数组,尽管有时可能会失去精度。
For a 1D array, a.tolist()
is almost the same as list(a)
, except that tolist
changes numpy scalars to Python scalars:
strong@foreverstrong:~$ python3
Python 3.5.2 (default, Oct 8 2019, 13:06:37)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> a = np.array([1, 2])
>>> list(a)
[1, 2]
>>>
>>> a.tolist()
[1, 2]
>>>
>>> exit()
strong@foreverstrong:~$
strong@foreverstrong:~$ python3
Python 3.5.2 (default, Oct 8 2019, 13:06:37)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> a = np.uint32([1, 2])
>>> a_list = list(a)
>>> a_list
[1, 2]
>>> type(a_list[0])
>>>
>>> a_tolist = a.tolist()
>>> a_tolist
[1, 2]
>>> type(a_tolist[0])
>>> exit()
strong@foreverstrong:~$
However, for a 2D array, tolist
applies recursively:
>>> a = np.array([[1, 2], [3, 4]])
>>> list(a)
[array([1, 2]), array([3, 4])]
>>> a.tolist()
[[1, 2], [3, 4]]
The base case for this recursion is a 0D array:
>>> a = np.array(1)
>>> list(a)
Traceback (most recent call last):
...
TypeError: iteration over a 0-d array
>>> a.tolist()
1