Ich möchte die Zeit, die für die Ausführung der Zelle aufgewendet wird, zusätzlich zur ursprünglichen Ausgabe der Zelle erhalten.
Zu diesem Zweck habe ich es versucht, %%timeit -r1 -n1
aber die in cell definierte Variable wird nicht verfügbar gemacht.
%%time
funktioniert für Zellen, die nur 1 Anweisung enthalten.
In[1]: %%time
1
CPU times: user 4 µs, sys: 0 ns, total: 4 µs
Wall time: 5.96 µs
Out[1]: 1
In[2]: %%time
# Notice there is no out result in this case.
x = 1
x
CPU times: user 3 µs, sys: 0 ns, total: 3 µs
Wall time: 5.96 µs
Was ist der beste Weg, um es zu tun?
Aktualisieren
Ich benutze Execute Time in Nbextension schon seit einiger Zeit. Es ist großartig.
python
ipython
ipython-notebook
jupyter
Colinfang
quelle
quelle
x
Anzeigezeile in die nächste Zelle setzen?Antworten:
Verwenden Sie Zellmagie und dieses Projekt auf Github von Phillip Cloud:
Laden Sie es, indem Sie es oben in Ihr Notizbuch einfügen, oder fügen Sie es in Ihre Konfigurationsdatei ein, wenn Sie es immer standardmäßig laden möchten:
Wenn geladen, enthält jede Ausgabe der nachfolgenden Zellenausführung die Zeit in Minuten und Sekunden, die für die Ausführung benötigt wurde.
quelle
pip install ipython-autotime
%%time
auch wenn die letzte Aussage nicht istprint
.Die einzige Möglichkeit, dieses Problem zu lösen, besteht darin, die letzte Anweisung mit print auszuführen.
Vergessen Sie nicht, dass Zellmagie mit
%%
und Linienmagie mit beginnt%
.Beachten Sie, dass Änderungen, die in der Zelle vorgenommen werden, in den nächsten Zellen nicht berücksichtigt werden. Dies ist bei einer Pipeline nicht intuitiv:
quelle
%%time
unda=1
die 2. Zelle nicht weiß, wasa
ist?%time
und%timeit
jetzt kommt ein Teil von Ipythons eingebauten magischen Befehlenquelle
Eine einfachere Möglichkeit ist die Verwendung des ExecuteTime-Plugins im Paket jupyter_contrib_nbextensions.
quelle
Ich habe einfach
%%time
am Anfang der Zelle hinzugefügt und die Zeit bekommen. Sie können dasselbe in Jupyter Spark-Cluster- / virtuellen Umgebungen verwenden, die dasselbe verwenden. Fügen Sie einfach%%time
oben in der Zelle hinzu und Sie erhalten die Ausgabe. Bei einem Spark-Cluster mit Jupyter habe ich oben in der Zelle hinzugefügt und die folgende Ausgabe erhalten: -quelle
quelle
Sie können dafür die
timeit
magische Funktion verwenden.Oder in der Zelle
Weitere IPython Magic-Funktionen finden Sie unter https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb
quelle
Das ist nicht gerade schön, aber ohne zusätzliche Software
Dann können Sie es wie folgt ausführen:
quelle
Manchmal ist die Formatierung in einer Zelle bei der Verwendung anders
print(res)
, aber jupyter / ipython wird mit a geliefertdisplay
. Unten sehen Sie ein Beispiel für den Formatierungsunterschied mit Pandas.Die
display
Anweisung kann die Formatierung beibehalten.quelle
Vielleicht möchten Sie auch einen Blick auf Pythons magischen Profiling-Befehl werfen,
%prun
der so etwas wie -dann
wird zurückkehren
Ich finde es nützlich, wenn ich mit großen Codestücken arbeite.
quelle
Wenn in Schwierigkeiten, was bedeutet was:
?%timeit
oder??timeit
Um die Details zu erhalten:
quelle
Wenn Sie die Ausführungszeit von Wandzellen hier drucken möchten, ist dies ein Trick
Stellen Sie hier jedoch sicher, dass die %% -Zeit eine magische Funktion ist. Fügen Sie sie daher in die erste Zeile Ihres Codes ein .
Wenn Sie es nach einer Zeile Ihres Codes einfügen, wird es Ihnen einen Verwendungsfehler geben und nicht funktionieren.
quelle