2017-04-05 4 views
1

Ist eine Funktion, die mich eine beliebige Zahl (z. B. "0") am Ende jeder Zeile im Array hinzufügen. Beispiel: Ich habe zwei dimensionales Array:wie Nummer am Ende der Zeile im Array numpy Python hinzufügen

ar=[[0,0,1], 
[1,1,1], 
[0,1,0]] 

Und ich hinzufügen möchte es andere 1-dimensionalen Array, so habe ich:

otherarray=numpy.array([],dtype=bool) 
    otherarray=np.append(otherarray, ar) 

Ergebnis:

otherarray=[0,0,1,1,1,1,0,1,0] 

Und Es klappt. Aber ich muss zu jeder Zeile eine beliebige Zahl hinzufügen, z. 0 und erhalten Sie als Ergebnis in einem anderen Array (nicht ändern ar). Ergebnis Ich mag:

[0,0,1,0,1,1,1,0,0,1,0,0] 

ich es tue for-Schleife (Ich setze jedes Element one-by-one otherarray), aber jetzt bin ich zu fragen: ist eine bessere Möglichkeit?

Antwort

1

Sie können eine Nullspalte zu ar anhängen und dann abflachen:

A = np.array(ar)  

np.hstack([A, np.zeros((A.shape[0], 1), dtype=A.dtype)]).ravel() 
# array([0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0]) 
+0

Tolle Idee! Vielen Dank! – Queen

Verwandte Themen