Array-Multiplikation

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
naddel83
User
Beiträge: 8
Registriert: Freitag 9. Mai 2014, 08:28

Hallo.

Im Großen und Ganzen möchte ich eine Berechnung von der Abweichung vom Mittelwert berechnen mit

Code: Alles auswählen

mw = np.array(np.mean(P1, axis=0)).T #Mittelwert entlang der Spalten
l = np.array(np.ones(n))
abw=P1-(mw*l) #Broadcasting-Fehler, da shapes (4) und (2)
mw1 = mw[:, np.newaxis]
abw=P1-(mw1*l) #Broadcasting-Fehler, da shape (10,2) und (2,10)
Dabei ist P1 ein Array mit einem shape von (10,2). mw ist einfach der Mittelwert aus den P1 enthaltenen Werten im Array mit shape (2) und l ist ein Array aus Einsen, welche mit mw multipliziert wird.

Wenn ich nun mw*l berechnen will, dann sagt er broadcast-Problem, da unterschiedliche shapes von (4) und (2). Dann habe ich es mit Broadcasting versucht und es sagt mir mir den gleichen Fehler, jedoch diesmal mit shape (10,2) und (2,10).
Wie kann ich nun die Berechnung ausführen?! Ich habe mir folgendes überlegt:
Ist es möglich den shape (2,10) zu (10,2) zu transformieren, um die Berechnung durchzuführen? und wenn ja, wie?

Danke für eure Hilfe
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Code: Alles auswählen

mw = np.mean(P1, axis=0)
abw = P1 - mw
naddel83 hat geschrieben:Ist es möglich den shape (2,10) zu (10,2) zu transformieren, um die Berechnung durchzuführen? und wenn ja, wie?
Die Operation heißt Transposition und du benutzt sie, warum auch immer, schon in Zeile 1.
Das Leben ist wie ein Tennisball.
naddel83
User
Beiträge: 8
Registriert: Freitag 9. Mai 2014, 08:28

Danke hat geklappt.
Antworten