Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Funktionen effizient auf NumPy-Arrays anwenden?

Wie kann ich Funktionen effizient auf NumPy-Arrays anwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-18 04:42:16934Durchsuche

How Can I Efficiently Apply Functions to NumPy Arrays?

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:

  • np.fromiter(): Iteriert über einen Generator und erstellt ein Array.
  • np.array(list(map(f, x))): Verwendet die Karte Funktion zum Anwenden einer Funktion auf jedes Element und anschließende Konvertierung in ein Array.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn