Leistungsüberlegungen von Pandas Apply vs. NumPy Vectorize für die Spaltenerstellung
Obwohl Pandas Apply weit verbreitet ist, bleibt seine Leistung beim Erstellen hinter NumPy Vectorize zurück neue Spalten aus vorhandenen. Diese Ungleichheit wird auf die Tatsache zurückgeführt, dass Apply-Funktionen Schleifen auf Python-Ebene sind, die einen erheblichen Overhead verursachen. Im Gegensatz dazu wandelt Vectorize die Eingabefunktion in eine Universalfunktion um und verbessert so die Effizienz erheblich.
Leistungsbenchmarks
Schleifen auf Python-Ebene vergleichen und mit raw=True anwenden, wir Beachten Sie:
Echte Vektorisierung
Allerdings werden sowohl „Anwenden“ als auch „Vektorisieren“ durch echte Vektorisierungsoperationen wie np.where in den Schatten gestellt, die Berechnungen elementweise auf NumPy-Arrays durchführen. Dieser Ansatz ist bemerkenswert schneller und macht Schleifen überflüssig.
Weitere Überlegungen zur Leistung
Bei kritischen Engpässen sollten Sie numba in Betracht ziehen, ein Tool, das Python-Funktionen in hochoptimiertes C kompiliert Code. Mithilfe von numba können Berechnungen weiter beschleunigt werden.
Fazit
Beim Erstellen neuer Spalten aus vorhandenen Spalten bietet NumPy vectorize aufgrund seiner nativen Vektorisierung eine überlegene Leistung im Vergleich zu Pandas Apply Fähigkeiten. Für eine optimale Effizienz sollte gegebenenfalls echte Vektorisierung eingesetzt werden.
Das obige ist der detaillierte Inhalt vonWelche Methode ist schneller zum Erstellen neuer Spalten in einem Pandas-DataFrame: Pandas Apply oder NumPy Vectorize?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!