Nabend zusammen,
ich stehe gerade vor einem kleinen Problem, was mir allerdings mächtig Arger macht... ich habe mehrere Numpy-Arrays, welche alle eine Spalte und viele Zeilen haben. Nun möchte ich diese zu einem großen Array zusammenführen, wobei die erste Spalte jeder Zeile aus dem des ersten Arrays bestehen soll, die zweite Spalte aus dem des Zweiten... usw. im Prinzip folgendermaßen
Wert1 erstes Array Wert1 zweites Array Wert1 drittes Array
Wert2 erstes Array Wert2 zweites Array Wert2 drittes Array
Wert3 erstes Array Wert3 zweites Array Wert3 drittes Array
Und so weiter.
Derzeit sieht die Ausgabe so aus:
[[ 1 11 111]
[ 2 22 222]]
soll aber quasi so aussehen:
[[ 1 2
11 22
111 222]]
hinzu zu sagen wäre evtl noch, dass wenn ich in den Variablenexplorer von Spyder schaue, vor den Variablen noch der jeweilige Laufindex der Variable steht, 0,1,2,3 etc. (evtl ist das ja relevant)
ein Minibeispiel habe ich leider nicht so hinbekommen, dass die Ausgabe so aussieht wie in meinem derzeitigen Programm... die Zusammenführung der Arrays sieht allerdings folgendermaßen aus: a = np.array([x, y]) und dies führt zu der oben genannten Ausgabe.
Für Tipps und Lösungen bin ich sehr dankbar!
Vielen Dank.
Grüße
Yoyoba
Numpy-Array nicht richtig strukturiert...
@yoyoba: woher hast Du die Numpy-Arrays? Warum sind die nicht schon von anfang an so, wie Du sie möchtest?
Zusammensetzen tut man das mit hstack:
Zusammensetzen tut man das mit hstack:
Code: Alles auswählen
x = numpy.hstack([a,b,c])
Danke für die schnelle Antwort, während der Antwort habe ich den Thread allerdings noch einmal editiert...
Das Ergebnis mit concatenate führt zu folgendem: [ 1 11 111 2 22 222]
Leider noch nicht das, was ich suche... Danke trotzdem
Das Ergebnis mit concatenate führt zu folgendem: [ 1 11 111 2 22 222]
Leider noch nicht das, was ich suche... Danke trotzdem
Hast du auch das axis-Argument entsprechend angepasst? Sirius3's Antwort mag aber simpler zu nutzen sein. hstack/vstack sind sozusagen vordefinierte concacenate-Aufrufe:
http://stackoverflow.com/questions/3335 ... lumn-stack
http://stackoverflow.com/questions/3335 ... lumn-stack
Ich lade eine xlsx-Datei ein, diese hat in der ersten Zeile die Namen der Spalten. Dies landet in einer Variable "Einlesung". Auf diese Variable greife ich dann mit Einlesung["Spalte1"] zu und bearbeite die Werte entsprechend, anschließend schreibe ich diese dann in eine neue Variable (z.B. Variable "Spalte1bearbeitet"). Danach sollen diese dann in ein (wie oben beschriebenes) Array geschrieben werden. Leider führt dies, wie gesagt nicht zum Erfolg, die Variante mit dem hstack klang zwar gut, führt aber zu folgenden:
[ 1 11 111 2 22 222]
Danke.
[ 1 11 111 2 22 222]
Danke.
Ich habe nun folgende "kleine" Lösung:
wenn ich stetig nur eine Zeile jedes Arrays nehme geht es!
gesamt = np.hstack([Array1[1], Array2[1]])
so ginge es, habe mir überlegt einfach eine for-Schleife zu setzen mit Laufindex i
kriege nun aufgrund dessen, dass bei der Variable a auch ein steht folgende Meldung:
IndexError: list assignment index out of range
Weiß jemand, wieso ich kein Laufindex an das Array setzen kann?
Danke
wenn ich stetig nur eine Zeile jedes Arrays nehme geht es!
gesamt = np.hstack([Array1[1], Array2[1]])
so ginge es, habe mir überlegt einfach eine for-Schleife zu setzen mit Laufindex i
Code: Alles auswählen
i = 0
a = [3]
for i in range (0, 3):
a[i] = np.hstack([Array1[i], Array2[i]])
IndexError: list assignment index out of range
Weiß jemand, wieso ich kein Laufindex an das Array setzen kann?
Danke
Code: Alles auswählen
In [1]: a = [3]
In [2]: a[0]
Out[2]: 3
In [3]: a[1]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-3-3ef3908cabc7> in <module>()
----> 1 a[1]
IndexError: list index out of range
In [4]: a
Out[4]: [3]
In [5]: range(0, 3)
Out[5]: [0, 1, 2]
the more they change the more they stay the same
@yoyoba: so ganz habe ich noch nicht kapiert, was Du hast: numpy-Arrays, Listen? Soweit ich jetzt verstanden habe, möchtest Du das Array einfach transponieren:
Code: Alles auswählen
x = numpy.array([a,b,c]).T
Hallo, danke für eure beiden Antworten,
ja habe meinen Fehler mit [] gefunden, komme allerdings immernoch nicht weiter wie ich die Auflistung ausführe mit einer for-Schleife?...
@Sirius, habs mir grade mal angeschaut, sieht so aus als ob man es tatsächlich einfach transponieren könnte. Würde trotzdem grade mal das Rätsel mit der Schleife gerne lösen, wie ich sowas aufbauen könnte...
ja habe meinen Fehler mit [] gefunden, komme allerdings immernoch nicht weiter wie ich die Auflistung ausführe mit einer for-Schleife?...
@Sirius, habs mir grade mal angeschaut, sieht so aus als ob man es tatsächlich einfach transponieren könnte. Würde trotzdem grade mal das Rätsel mit der Schleife gerne lösen, wie ich sowas aufbauen könnte...