Wenn ich über ein großes Array mit einem Bereichsausdruck iteriere, sollte ich die integrierte Bereichsfunktion von Python oder arange
von numpy verwenden, um die beste Leistung zu erhalten? so weitBuilt-in-Bereich oder numpy.arange: was ist effizienter?
Meine Argumentation:
arange
wahrscheinlich greift auf eine native Implementierung und könnte schneller deshalb sein. Auf der anderen Seite gibt arange
ein vollständiges Array zurück, das Speicher belegt, so dass möglicherweise ein Overhead entsteht. Der Bereichsausdruck von Python 3 ist ein Generator, der nicht alle Werte im Speicher enthält.
Danke, ich wusste nichts über die magische Funktion. – clstaudt
Es gibt ein Standard-Python-'timeit'-Modul, das es ermöglicht, dasselbe ohne IPython zu machen. Aber es ist einfach einfacher, diese magische Funktion zu benutzen. –
-1 weil ich denke, das ist kein guter Benchmark. Das Schleifen über ein numpy Array ist ineffizient. – bmu