numpy ndarrays: zeilenweise und spaltenweise Operationen

8

Wenn ich eine Funktion zeilenweise (oder spaltenweise) auf ein ndarray anwenden möchte, schaue ich auf ufuncs (scheint nicht so) oder auf eine Art Array-Broadcasting (nicht das, wonach ich suche entweder?)?

Bearbeiten

Ich suche nach etwas wie Rs Anwendungsfunktion. Zum Beispiel,

%Vor%

würde durch eine anonym definierte Funktion 2 zu jeder Zeile von X multiplizieren, könnte aber auch eine benannte Funktion sein. (Dies ist natürlich ein dummes, künstliches Beispiel, in dem apply nicht wirklich benötigt wird). Es gibt keine generische Möglichkeit, eine Funktion über die "Achse" eines NumPy-Arrays anzuwenden,?

    
hatmatrix 13.10.2011, 16:30
quelle

1 Antwort

13

Zunächst einmal nehmen viele numpige Funktionen ein Argument axis . Es ist wahrscheinlich möglich (und besser) zu tun, was Sie mit dieser Art von Ansatz wollen.

Allerdings würde ein generischer Ansatz "diese Funktion zeilenweise anwenden" in etwa so aussehen:

%Vor%

Denken Sie daran, dass wir genau dasselbe mit nur tun können:

%Vor%

Es gibt oft einen besseren Weg, den generischen Ansatz, insbesondere mit numpy.

Bearbeiten:

Ich habe es komplett vergessen, aber das obige ist im Wesentlichen äquivalent zu numpy.apply_along_axis .

Also könnten wir das wie folgt neu schreiben:

%Vor%     
Joe Kington 13.10.2011, 16:53
quelle