2017-02-27 13 views
1

In einer früheren Frage, fragte ich über verketten 3-Arrays in PythonPython: verketten 3 Matrizen auf eine Liste

Python: Concatenate 3 arrays

Ich habe es nicht geschafft es für das folgende Beispiel zu bekommen

Angenommen ich 3-Arrays haben

a1=[ 
array([628.95, 632.012, 632.67, 270.70, 275.23, 275.20]) 
array([13.87, -24.55, 13.012, 17.61, -7.07, 2.29]) 
array([-4.56089042, -4.76182533, -5.84063203, -1.4404148, 23.11891765, 15.67678579]) 
] 

a2=[ 
array([2353.12, 2357.60, 2360.42, 1718.49, 1703.65322389, 1718.781]) 
array([-31.07, 50.49, -32.94, 32.27, 20.404, 5.79]) 
array([-5.75, -4.70, -3.86, 30.25, 66.60, 64.626]) 
] 


a3=[ 
array([2716.476, 2724.714, 2731.84, 1944.73, 1920.258, 1926.840]) 
array([-14.30, 20.78, -17.90, 44.94, -15.26, 19.888]) 
array([-13.959, -12.62, -10.84, 4.227, 45.744, 42.448]) 
] 

ich möchte folgende Ausgabe erhalten:

r = a1[0] + a2[0] + a3[0] + a1[1] + a2[1] + a3[1] +a1[2] + a2[2] + a3[2] 

r = [628.95, 632.012, 632.67, 270.70, 275.23, 275.20, 2353.12, 2357.60, 2360.42, 1718.49, 1703.65322389, 1718.781, 2716.476, 2724.714, 2731.84, 1944.73, 1920.258, 1926.840,13.87, -24.55, 13.012, 17.61, -7.07, 2.29, -31.07, 50.49, -32.94, 32.27, 20.404, 5.79 .... ]  

Wer dies in allgemeiner Weise zu tun mit numpy

+0

einen Blick darauf werfen, wie Listen –

+0

@WarrenWeckesser sicher zu glätten! Ich bearbeitet, danke :) –

Antwort

1

können Sie zip mit numpy.concatenate verwenden:

import numpy as np 
a = np.concatenate([np.concatenate(x) for x in zip(a1, a2, a3)]) 
a 

#array([ 628.95  , 632.012  , 632.67  , 270.7  , 
#   275.23  , 275.2  , 2353.12  , 2357.6  , 
#  2360.42  , 1718.49  , 1703.65322389, 1718.781  , 
#  2716.476  , 2724.714  , 2731.84  , 1944.73  , 
#  1920.258  , 1926.84  , 13.87  , -24.55  , 
#   13.012  , 17.61  , -7.07  ,  2.29  , 
#   -31.07  , 50.49  , -32.94  , 32.27  , 
#   20.404  ,  5.79  , -14.3  , 20.78  , 
#   -17.9  , 44.94  , -15.26  , 19.888  , 
#   -4.56089042, -4.76182533, -5.84063203, -1.4404148 , 
#   23.11891765, 15.67678579, -5.75  , -4.7  , 
#   -3.86  , 30.25  , 66.6  , 64.626  , 
#   -13.959  , -12.62  , -10.84  ,  4.227  , 
#   45.744  , 42.448  ]) 
+0

und wenn die Anzahl der Arrays zu verketten ist undefiniert? –

+0

Wie eine Liste von Arrays? Wenn 'lst = [a1, a2, a3, ...]', dann können Sie '... für x in zip (* lst)' tun. – Psidom

+1

danke! funktioniert gut :) –