Seite 1 von 1

Array-Multiplikation

Verfasst: Donnerstag 7. August 2014, 10:36
von naddel83
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

Re: Array-Multiplikation

Verfasst: Donnerstag 7. August 2014, 10:57
von EyDu

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.

Re: Array-Multiplikation

Verfasst: Donnerstag 7. August 2014, 11:08
von naddel83
Danke hat geklappt.