Vektorisieren von Funktionen für Numpy-Arrays
Um eine Funktion effizient über ein Numpy-Array abzubilden, können Sie die Leistungsfähigkeit der Vektorisierung nutzen, die Ihnen dies ermöglicht um Operationen elementweise auf dem Array auszuführen. Dies ist viel schneller als die Verwendung schleifenbasierter Ansätze wie Listenverständnis.
NumPy Native Functions
Wenn die Funktion, die Sie abbilden möchten, bereits als NumPy-Funktion vektorisiert ist, B. np.square() zum Quadrieren von Elementen, wird dringend empfohlen, dies zu verwenden. Es wird deutlich schneller sein als andere Methoden.
Vektorisierung mit NumPys Vektorisierung
NumPy stellt die Vektorisierungsfunktion für Vektorisierungsfunktionen bereit. Es umschließt Ihre Funktion, um elementweise Operationen auf Arrays zu ermöglichen:
import numpy as np def f(x): return x ** 2 vf = np.vectorize(f) x = np.array([1, 2, 3, 4, 5]) squares = vf(x)
Eine andere Alternative besteht darin, die Vektorisierung zu verwenden, ohne einen Funktionswrapper zu initialisieren:
squares = np.vectorize(f)(x)
Andere Vektorisierungsmethoden
Andere Methoden zur Vektorisierung include:
Leistung Überlegungen
Obwohl alle diese Methoden Funktionen vektorisieren können, kann ihre Leistung variieren. Benchmarks haben gezeigt, dass die Verwendung der nativen Funktionen von NumPy am schnellsten ist, wenn diese verfügbar sind. In anderen Fällen schneiden Vectorize und Fromiter normalerweise besser ab als np.array(list(map(f, x))).
Das obige ist der detaillierte Inhalt vonWie kann ich Funktionen effizient auf NumPy-Arrays anwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!