2017-02-01 8 views
0

ich wie eine 2D-Liste von Arrays habeneiner Spalte zu einer 2D-Liste hinzufügen

array([ 988, 389], 
     [ 986, 389], 
     [ 985, 388], 
     [ 977, 388], 
     [ 976, 387]], dtype=int32) 

und eine weitere Liste

array([ 149.68299837], 
     [ 149.25481567], 
     [ 150.029997 ], 
     [ 148.63714206], 
     [ 149.48244044]]) 

Ich habe versucht, diese beiden Listen

trail = list(map(list,zip(two_d_array,concat))) 
    trail = np.vstack(trail) 

mit verketten Dies gibt mir

array([array([988, 389], dtype=int32), array([ 149.68299837])], 
     [array([986, 389], dtype=int32), array([ 149.25481567])], 
     [array([985, 388], dtype=int32), array([ 150.029997])], 
     [array([977, 388], dtype=int32), array([ 148.63714206])], 
     [array([976, 387], dtype=int32), array([ 149.48244044])]], dtype=object) 

Wie kann ich all das Array und dtype entfernen und zeigen nur die Zahlen wie

 [ 988, 389,149.68299837], 
    [ 986, 389,149.25481567], 
    [ 985, 388, 150.029997], 
    [ 977, 388,148.63714206], 
    [ 976, 387,149.48244044] 
+0

Probieren Sie 'np.column_stack'. – Divakar

+0

jetzt seine Trennung jedes Element to array ([150.029997]) array ([148.63714206]) array ([149.48244044])]]] –

+0

Haben Sie versucht: 'np.column_stack ((two_d_array, concat))'? – Divakar

Antwort

0

Ich mag np.c_ und np.column_stack (@Divakar Vorschlag), da ich scheren sich wenig um Timing, aber ich bin mehr daran interessiert, wie es visuell ' sieht für Verständnis Zwecke ...

>>> a = np.arange(10).reshape(5, 2) 
>>> b = np.arange(10,15) 
>>> c = np.c_[a,b] 
>>> a 
array([[0, 1], 
     [2, 3], 
     [4, 5], 
     [6, 7], 
     [8, 9]]) 
>>> b 
array([10, 11, 12, 13, 14]) 
>>> c 
array([[ 0, 1, 10], 
     [ 2, 3, 11], 
     [ 4, 5, 12], 
     [ 6, 7, 13], 
     [ 8, 9, 14]]) 
>>> np.column_stack((a,b)) 
array([[ 0, 1, 10], 
     [ 2, 3, 11], 
     [ 4, 5, 12], 
     [ 6, 7, 13], 
     [ 8, 9, 14]]) 

Array a und b sind offensichtlich. Ich muss mich nur daran erinnern, np.c_ eckige Klammern zu machen (np.c_ [stack this] und natürlich stapelweise macht für mich auch Sinn.

0

eine Kopie-n-Paste Ihrer beiden Arrays zu tun ich am Anfang das Ergebnis in eine [ hatte 2 2d

Arrays
In [165]: twod.shape 
Out[165]: (5, 2) 
In [166]: oned.shape 
Out[166]: (5, 1) 

Ein einfaches verketten arbeitet

In [164]: np.concatenate((twod, oned),axis=1) 
Out[164]: 
array([[ 988.  , 389.  , 149.68299837], 
     [ 986.  , 389.  , 149.25481567], 
     [ 985.  , 388.  , 150.029997 ], 
     [ 977.  , 388.  , 148.63714206], 
     [ 976.  , 387.  , 149.48244044]]) 

Beachten Sie, dass jetzt alles ist schweben.

Ihre Liste Karte Calc erzeugt eine Liste wie:

[[array([988, 389]), array([ 149.68299837])], 
[array([986, 389]), array([ 149.25481567])], 
[array([985, 388]), array([ 150.029997])], 
.... 

Teillisten, die 2-Arrays unterschiedlicher Länge. Setzt man hstack für Liste würde eine Liste erzeugt haben, die vstacked werden konnte

In [173]: temp = list(map(np.hstack, zip(twod, oned.ravel()))) 
In [174]: temp 
Out[174]: 
[array([ 988.  , 389.  , 149.68299837]), 
array([ 986.  , 389.  , 149.25481567]), 
array([ 985.  , 388.  , 150.029997]), 
.... 
Verwandte Themen