2016-08-02 19 views
1

Von meiner previous question, ich weiß, gelten ist viel langsamer als Dataframe zusammenführen direkt.Warum Pandas viel langsamer als Datenrahmen Merge

Aber ich bin immer noch verwirrt darüber, warum so viel langsamer, als in meinem Verständnis, wenn es N Zeilen in Datenrahmen, Funktion gilt als O (N) arbeitet ...

jemand die Theorie hinter erklären könnte bewerben und Datenrahmen zu mir zusammenführen? Oder gibt es irgendwelche Ressourcen, um das zu studieren?

Vielen Dank im Voraus :)

+0

AFAIK 'apply' verwendet eine interpretierte Python-Funktion, während integrierte Operationen C-kompilierte Funktionen sind. – Mephy

+0

Hallo Mephy, könnten Sie irgendeinen Link darüber teilen? Ich denke sogar Python ist langsamer als c, aber ich sah Anwendung ist mehr als 100 mal langsam im Vergleich zu Datenrahmen Merge, so denke ich, es sollte nicht nur mit Sprachen verwandt werden :) – linpingta

Antwort

1

Die Antwort ist ja . Python kann hundertmal langsamer sein als C, nur weil es Python ist, mit äquivalenten Asymptotiken. Als ein angewandter Mathematiker mit viel Erfahrung in Zahlenverarbeitung kann ich bezeugen, dass C zehn- bis hundertmal schneller sein kann als Python. Eine offizielle Quelle finden Sie unter these benchmarks.

Denken Sie daran, dass asymptotische Komplexität etwa Skalierung nur ist. Zwei Algorithmen können leicht die gleiche Komplexität aufweisen und unterscheiden sich dennoch in der Laufzeit um Größenordnungen. Wenn Sie nun feststellen, dass Python um einen größeren Faktor verlangsamt als C ist (dh die Eingabe verdoppelt die Laufzeit, wenn sie linear sein soll), könnte es sich um einen asymptotisch signifikanten algorithmischen Unterschied handeln.

+0

danke @bpachev ~ Ich habe immer noch zwei Verwirrungen darüber : 1. Jedes Dokument mit detaillierten Informationen über die Funktion anwenden? 2. jede Möglichkeit, das zu vermeiden, wenn ich Daten transformieren will :) – linpingta

Verwandte Themen