[英]Converting NumPy array into Python List
如何将 NumPy 数组转换为 Python 列表,例如:
[[ 0.] [ 1.] [ 2.] [ 3.] [ 4.]] --> ['0', '1', '2', '3', '4']
您可以使用 numpy 的.flatten()
方法,后跟一个list
和map
function。
>>> arr = np.array([[0.],[1.],[2.],[3.],[4.]])
>>> arr = arr.flatten()
>>> arr
array([0., 1., 2., 3., 4.])
>>> arr = list(map(lambda x:f"{x:.0f}", arr))
>>> arr
['0', '1', '2', '3', '4']
首先尝试了解数组是什么:
In [73]: arr = np.array([[ 0.], [ 1.], [ 2.], [ 3.], [ 4.]])
In [74]: arr
Out[74]:
array([[0.],
[1.],
[2.],
[3.],
[4.]])
In [75]: arr.shape, arr.dtype
Out[75]: ((5, 1), dtype('float64'))
有一种很好、快速的方法可以将数组转换为列表 - 在使用 [] 和类型时接近原始值 - 浮动。
In [76]: arr.tolist()
Out[76]: [[0.0], [1.0], [2.0], [3.0], [4.0]]
如果您不想要那些内部 [],维度,让我们拉威尔/展平数组。 使用数组比嵌套列表更容易完成:
In [77]: arr.ravel()
Out[77]: array([0., 1., 2., 3., 4.])
我们还可以将浮点数转换为字符串:
In [78]: arr.ravel().astype(str)
Out[78]: array(['0.0', '1.0', '2.0', '3.0', '4.0'], dtype='<U32')
In [79]: arr.ravel().astype(str).tolist()
Out[79]: ['0.0', '1.0', '2.0', '3.0', '4.0']
但是你想要整数 - 所以让我们先进行转换:
In [80]: arr.ravel().astype(int).astype(str).tolist()
Out[80]: ['0', '1', '2', '3', '4']
另一个答案显示了如何使用列表进行这些转换。
这是代码:
import numpy as np
arr = np.array([[1], [2], [3]])
print(f'NumPy Array: {arr}')
list1 = arr.tolist()
l = [i for sublist in list1 for i in sublist]
print(f'List: {l}')
您可以使用简单for loop
:
import numpy as np
a = [[0.],[1.],[2.],[3.],[4.]]
b = np.asarray(a)
lst=[]
for i in b:
lst.append(str(int(i[0])))
lst
>>>['0', '1', '2', '3', '4']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.