Seite 1 von 1

Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 19:28
von yoyoba
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

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 19:41
von __deets__

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 19:44
von Sirius3
@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:

Code: Alles auswählen

x = numpy.hstack([a,b,c])

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 19:45
von yoyoba
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 ;)

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 19:49
von __deets__
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

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 19:57
von yoyoba
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.

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 20:34
von yoyoba
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

Code: Alles auswählen

        i = 0
        a = [3]
        for i in range (0, 3):
        	a[i] = np.hstack([Array1[i], Array2[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

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 20:39
von Dav1d

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]

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 21:04
von Sirius3
@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

Re: Numpy-Array nicht richtig strukturiert...

Verfasst: Samstag 19. November 2016, 21:15
von yoyoba
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...