2012-12-19 9 views
6

ich zur Zeit bin immer Versuch:zur Umwandlung eine Matrix 1 * 3 in eine Liste

y=[[ 0.16666667] 
[-0.16666667] 
[ 0.16666667]] 

Dies kommt aus einer Funktion im mit und ich brauche die oben in eine Liste im Format unten drehen:

x= [0.16666667,-0.16666667,0.16666667] 

ich versuchte Liste (y), aber das funktioniert nicht, weil es zurückgibt:

[array([ 0.16666667]), array([-0.16666667]), array([ 0.16666667])] 

Wie genau würde ich das tun ??

+0

Siehe [link] (http://stackoverflow.com/questions/4048792/i-want-to-convert-a -Matrix-zu-Liste-Python /). Dies kann dir helfen. –

+0

Es ist eine allgemeine Anforderung, eine verschachtelte Liste zu reduzieren, schauen Sie sich [this] an (http://stackoverflow.com/questions/406121/flattening-a-shall-list-in-python) – xiaowl

+0

Ist ya Matrix oder ein Array ? – mtrw

Antwort

6
my_list = [col for row in matrix for col in row] 
+0

das hat funktioniert! Danke! – user1819717

+0

@ user1819717 Vergessen Sie nicht, die Antwort zu akzeptieren, wenn es nützlich war. – Trufa

+0

Die Interpretation von mehreren Iterationsebenen innerhalb eines Generatorausdrucks oder eines Listenverständnisses ist etwas, das die Menschen oft verwirrt und daher mit großer Sorgfalt verwendet werden sollte; Wenn Sie erst einmal zur 'for'-Anweisung kommen, werden sie * von links nach rechts * behandelt und nicht mehr als die offensichtlicher-zu-mir-und-mehreren-anderen-Personen-die-ich-habe-gesprochen-zu-denen - von innen nach rechts. Obwohl ich davon wusste, habe ich eigentlich erst vor ein paar Tagen [mit Abtretungsanweisungen] (http://stackoverflow.com/questions/13945048) daran gedacht ... sie arbeiten auch von links nach rechts. –

1

Grabs das erste Element aus jedem sublist, ein list comprehension mit:

x = [elt[0] for elt in y] 
4

Sie die numpy .tolist() Methode verwenden:

array.tolist() 

Es gibt auch einen weiteren Vorteil zu ihm. .. Es funktioniert mit matrix Objekte, das Listenverständnis nicht. Wenn Sie die Bemaßung zuerst entfernen möchten, können Sie hierzu numpy-Methoden verwenden, z. B. array.squeeze()

Verwandte Themen