Welche Methode ist schneller zum Erstellen neuer Spalten in einem Pandas-DataFrame: Pandas Apply oder NumPy Vectorize?

Linda Hamilton
Freigeben: 2024-10-26 14:40:03
Original
707 Leute haben es durchsucht

Which Method is Faster for Creating New Columns in a Pandas DataFrame: Pandas Apply or NumPy Vectorize?

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:

  • Karte, Listenverständnis mit Zip und Vektorisierung weisen eine ähnliche Leistung auf.
  • Anwenden mit raw=True ist deutlich schneller als ohne raw=True.

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!