Ich möchte die Verarbeitungszeit zwischen zwei identischen Listen testen, speziell für eine normale Liste und eine numme Liste. Mein Code ist
%Vor% Berechnung für t
ist in Ordnung, aber für u
NameError: der globale Name 'np' ist nicht definiert ist aufgeführt.
Wie soll ich es programmieren, um die Bearbeitungszeit zu bekommen?
Die Klasse timeit.Timer
kann auf zwei verschiedene Arten verwendet werden.
Er kann Quellcode entweder zum Kompilieren oder Ausführen verwenden - in diesem Fall wird der Code in einer neuen Umgebung ausgeführt, in der nur der setup
Code ausgeführt wurde, oder er kann eine aufrufbare, in diesem Fall die aufrufbare Prozedur ausführen wird nur aufgerufen (in Ihrer aktuellen Umgebung, wie jede andere aufrufbar).
Sie haben also zwei Möglichkeiten:
%Vor%... oder ...
%Vor% Im ersten Fall ist die Tatsache, dass Sie eine import numpy as np
gemacht haben, irrelevant; Es hat keine Auswirkung auf die Umgebung, in der np.arange(1000)
kompiliert und ausgeführt wird (und Sie müssen es daher in das setup=...
-Bit einschließen).
Im zweiten Fall ist die Tatsache, dass Sie eine import numpy as np
offensichtlich erstellt haben, relevant - sie betrifft die Umgebung, in der Ihr Code, einschließlich lambda: np.arange(1000)
, ausgewertet wird.
Um importierte Bibliotheken mit timeit
zu verwenden, müssen Sie sie mit dem Schlüsselwort setup
( Dokumente ):
Mit dem Argument setup
keyword können Sie Ihren Code einrichten, z. B. externe Bibliotheken importieren oder Funktionen aus Ihrem Code mithilfe von from __main__ import func
importieren.