Kapitel 24. Leistungsstarke Pandas: eval und Query

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Wie wir bereits in den vorangegangenen Kapiteln gesehen haben, beruht die Stärke des PyData-Stacks auf der Fähigkeit von NumPy und Pandas, grundlegende Operationen über eine intuitive Syntax auf höherer Ebene in den kompilierten Code auf niedrigerer Ebene zu übertragen: Beispiele dafür sind vektorisierte/broadcasted Operationen in NumPy und gruppierungsartige Operationen in Pandas. Diese Abstraktionen sind zwar für viele gängige Anwendungsfälle effizient und effektiv, aber sie beruhen oft auf der Erstellung temporärer Zwischenobjekte, was zu einem unangemessenen Overhead an Rechenzeit und Speicherbedarf führen kann.

Um dieses Problem zu lösen, enthält Pandas einige Methoden, die es dir ermöglichen, direkt auf C-Geschwindigkeitsoperationen zuzugreifen, ohne kostspielige Zuweisung von Zwischenarrays: eval und query, die auf dasNumExpr-Paket zurückgreifen. In diesem Kapitel führe ich dich durch ihre Verwendung und gebe dir einige Faustregeln, wann du sie einsetzen solltest.

Motivierende Abfrage und Eval: Zusammengesetzte Ausdrücke

Wir haben bereits gesehen, dass NumPy und Pandas schnelle vektorisierte Operationen unterstützen, zum Beispiel beim Addieren der Elemente zweier Arrays:

In [1]: import numpy as np
        rng = np.random.default_rng(42)
        x = rng.random(1000000)
        y = rng.random(1000000)
        %timeit x + ...

Get Python Data Science Handbook, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.