was heißt numpy.apply_along_axis führen Sie genau?
Ich bin gekommen, über die numpy.apply_along_axis Funktion im code. Und ich verstehe nicht, die Dokumentation darüber.
Dies ist ein Beispiel für die Dokumentation:
>>> def new_func(a):
... """Divide elements of a by 2."""
... return a * 0.5
>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> np.apply_along_axis(new_func, 0, b)
array([[ 0.5, 1. , 1.5],
[ 2. , 2.5, 3. ],
[ 3.5, 4. , 4.5]])
Als ich bisher so dachte, habe ich verstanden, die Dokumentation, die ich erwartet hätte:
array([[ 0.5, 1. , 1.5],
[ 4 , 5 , 6 ],
[ 7 , 8 , 9 ]])
d.h. dem auftragen der Funktion entlang der Achse [1,2,3] die Achse 0 in [[1,2,3], [4,5,6], [7,8,9]]
Offensichtlich bin ich falsch. Könntest du mich korrigieren ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
apply_along_axis
gilt für das bereitgestellte Funktion entlang 1D Scheiben von dem Eingabe-array, mit den in Scheiben entlang der Achse, die Sie angeben. Also in deinem Beispielnew_func
angewendet wird, über jedes Segment des Arrays entlang der ersten Achse. Wird es klarer, wenn Sie eine vector-valued function, sondern als ein Skalar, wie diese:Hier
numpy.diff
angewendet wird, an jeder Scheibe von entweder der ersten oder der zweiten Achse (dimension) des Arrays input.Die Funktion ausgeführt wird auf 1-d arrays entlang der Achse=0. Sie können angeben, eine andere Achse mit der "Achse" - argument. Eine Verwendung dieses Paradigmas ist:
Wurde die Funktion ausgeführt, die auf jedes subarray entlang der dimension 0. So, es ist gemeint für 1-D Funktionen und gibt ein 1D-array für jedes 1-D-Eingang.
Weiteres Beispiel ist :
Bietet einen skalaren Ausgang für einen 1-D array.
Natürlich könnte man nur die Achse parameter in cumsum oder die Summe zu tun, die oben, aber der Punkt hier ist, dass es verwendet werden kann für alle 1-D-Funktion Sie schreiben.