Numpy-Array nicht richtig strukturiert...

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
yoyoba
User
Beiträge: 14
Registriert: Mittwoch 6. Januar 2016, 21:34

Numpy-Array nicht richtig strukturiert...

Beitragvon yoyoba » Samstag 19. November 2016, 19:28

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
Zuletzt geändert von yoyoba am Samstag 19. November 2016, 19:44, insgesamt 1-mal geändert.
Benutzeravatar
__deets__
User
Beiträge: 1323
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon __deets__ » Samstag 19. November 2016, 19:41

Sirius3
User
Beiträge: 6549
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon Sirius3 » Samstag 19. November 2016, 19:44

@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:
  1. x = numpy.hstack([a,b,c])
yoyoba
User
Beiträge: 14
Registriert: Mittwoch 6. Januar 2016, 21:34

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon yoyoba » Samstag 19. November 2016, 19:45

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 ;)
Benutzeravatar
__deets__
User
Beiträge: 1323
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon __deets__ » Samstag 19. November 2016, 19:49

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
yoyoba
User
Beiträge: 14
Registriert: Mittwoch 6. Januar 2016, 21:34

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon yoyoba » Samstag 19. November 2016, 19:57

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.
yoyoba
User
Beiträge: 14
Registriert: Mittwoch 6. Januar 2016, 21:34

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon yoyoba » Samstag 19. November 2016, 20:34

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 [i] steht folgende Meldung:

IndexError: list assignment index out of range

Weiß jemand, wieso ich kein Laufindex an das Array setzen kann?
Danke
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon Dav1d » Samstag 19. November 2016, 20:39

  1. In [1]: a = [3]
  2.  
  3. In [2]: a[0]
  4. Out[2]: 3
  5.  
  6. In [3]: a[1]
  7. ---------------------------------------------------------------------------
  8. IndexError                                Traceback (most recent call last)
  9. <ipython-input-3-3ef3908cabc7> in <module>()
  10. ----> 1 a[1]
  11.  
  12. IndexError: list index out of range
  13.  
  14. In [4]: a
  15. Out[4]: [3]
  16.  
  17. In [5]: range(0, 3)
  18. Out[5]: [0, 1, 2]
the more they change the more they stay the same
Sirius3
User
Beiträge: 6549
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon Sirius3 » Samstag 19. November 2016, 21:04

@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:
  1. x = numpy.array([a,b,c]).T
yoyoba
User
Beiträge: 14
Registriert: Mittwoch 6. Januar 2016, 21:34

Re: Numpy-Array nicht richtig strukturiert...

Beitragvon yoyoba » Samstag 19. November 2016, 21:15

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...

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder