Nach einigen komplexen Operationen wird eine resultierende Liste erhalten, z. B. Liste1, die eine Liste verschiedener Arrays ist.
Es folgt die Liste1
In [] : list1
Out [] :
[array([ 10.1]),
array([ 13.26]),
array([ 11.0 , 12.5])]
Möchten Sie diese Liste in eine einfache Liste von Listen und nicht in Arrays konvertieren?
Erwartet list2
[ [ 10.1],
[ 13.26],
[ 11.0 , 12.5] ]
Bitte lassen Sie mich wissen, wenn etwas unklar ist.
In einem Listenverständnis können Sietolist()
verwenden:
>>> [l.tolist() for l in list1]
[[0.0], [0.0], [0.0, 0.5], [0.5], [0.5], [0.5, 0.69], [0.69, 0.88], [0.88], [0.88], [0.88], [0.88, 1.0], [1.0, 1.1], [1.1], [1.1], [1.1], [1.1, 1.5], [1.5, 2.0], [2.0], [2.0]]
Rufen Sie einfach ndarray.tolist()
in jedem Member-Array auf.
l = [arr.tolist() for arr in l]
Dies sollte schneller sein, als ein NumPy-Array auf der äußeren Ebene zu erstellen und anschließend .tolist()
aufzurufen.
Wie wäre es mit einem einfachen Listenverständnis :
list1 = [list(x) for x in list1]
Verwenden Sie tolist()
:
import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
new_list = list(map(list,old_list))
Sie können die Kartenfunktion wie oben verwenden. Sie können das Ergebnis unten sehen:
In[12]: new_list = list(map(list,old_list))
In[13]: new_list
Out[13]:
[[0.0],
[0.0],
[0.0, 0.5],
[0.5],
[0.5],
[0.5, 0.68999999999999995],
[0.68999999999999995, 0.88],
[0.88],
[0.88],
[0.88],
[0.88, 1.0],
[1.0, 1.1000000000000001],
[1.1000000000000001],
[1.1000000000000001],
[1.1000000000000001],
[1.1000000000000001, 1.5],
[1.5, 2.0],
[2.0],
[2.0]]