it-swarm.com.de

Konvertieren einer Liste von Arrays in eine Liste von Listen?

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.

5
Liza

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]]
6

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. 

6
miradulo

Wie wäre es mit einem einfachen Listenverständnis :

list1 = [list(x) for x in list1]
3
Moses Koledoye

Verwenden Sie tolist():

import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
1
user4312643
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]]
0