Es ist bekannt, dass Jupyter / IPython die Ausführungszeit mit "% time" und "% timeit" messen kann, aber wollten Sie dies schon immer verarbeiten oder visualisieren?
Sie können %% Capture verwenden, um die Standardausgabe als Python-Objekt zu behandeln. Lass es uns tatsächlich tun.
%%capture result
%timeit 2 ** 100
Das Argument von %% Capture ist der Objektname. Weitere Optionen finden Sie in der Hilfe.
%capture [--no-stderr] [--no-stdout] [--no-display] [output]
run the cell, capturing stdout, stderr, and IPython's rich display() calls.
positional arguments:
output The name of the variable in which to store output. This is a utils.io.CapturedIO
object with stdout/err attributes for the text of the captured output.
CapturedOutput also has a show() method for displaying the output, and __call__ as
well, so you can use that to quickly display the output. If unspecified, captured
output is discarded.
Wenn Sie sich das Attribut "stdout" ansehen, können Sie sehen, dass die Standardausgabe in der Zeichenfolge gespeichert ist.
print(result.stdout)
292 ns +- 4.24 ns per loop (mean +- std. dev. of 7 runs, 1000000 loops each)
Lassen Sie uns diesen 292 ns
Teil in Sekunden umwandeln, damit er als numerischer Wert behandelt werden kann.
value, unit = result.stdout.split()[:2]
float(value) * {"s": 1, "ms": 1e-3, "us": 1e-6, "ns": 1e-9}[unit]
2.92e-07
Sie sind nicht auf "% timeit" beschränkt, sondern können "%% capture" verwenden, um verschiedene Ausgaben von Jupyter zu verarbeiten. Hab ein gutes Jupyter-Leben!
Recommended Posts