Me gustaría obtener el tiempo dedicado a la ejecución de la celda además del resultado original de la celda.
Con este fin, lo intenté %%timeit -r1 -n1
pero no expone la variable definida dentro de la celda.
%%time
funciona para la celda que solo contiene 1 declaración.
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
¿Cuál es la mejor manera de hacerlo?
Actualizar
He estado usando Execute Time en Nbextension durante bastante tiempo. Eso es genial.
python
ipython
ipython-notebook
jupyter
colinfang
fuente
fuente
x
línea de visualización en la celda siguiente?Respuestas:
Utiliza la magia celular y este proyecto en github de Phillip Cloud:
Cárguelo poniéndolo en la parte superior de su computadora portátil o póngalo en su archivo de configuración si siempre desea cargarlo de manera predeterminada:
Si se carga, cada salida de la ejecución posterior de la celda incluirá el tiempo en minutos y segundos que tardó en ejecutarse.
fuente
pip install ipython-autotime
%%time
funciona incluso cuando la última declaración no lo esprint
.La única forma en que encontré superar este problema es ejecutando la última declaración con print.
No olvides que la magia celular comienza con
%%
y la magia de línea comienza con%
.Tenga en cuenta que los cambios realizados dentro de la celda no se tienen en cuenta en las siguientes celdas, algo que es contrario a la intuición cuando hay una tubería:
fuente
%%time
ya=1
la segunda celda no sabe quéa
es?%time
y%timeit
ahora son parte de los comandos mágicos incorporados de ipythonfuente
Una forma más fácil es usar el complemento ExecuteTime en el paquete jupyter_contrib_nbextensions.
fuente
Simplemente agregué
%%time
al comienzo de la celda y obtuve el tiempo. Puede usar lo mismo en el clúster Jupyter Spark / entorno virtual con el mismo. Simplemente agregue%%time
en la parte superior de la celda y obtendrá la salida. En el grupo de chispas con Jupyter, agregué a la parte superior de la celda y obtuve la salida como a continuación:fuente
fuente
Puedes usar la
timeit
función mágica para eso.O en la celda
Verifique más funciones mágicas de IPython en https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb
fuente
Esto no es exactamente hermoso pero sin software adicional
Entonces puedes ejecutarlo como:
fuente
A veces, el formato es diferente en una celda cuando se usa
print(res)
, pero jupyter / ipython viene con undisplay
. Vea un ejemplo de la diferencia de formato usando pandas a continuación.La
display
declaración puede preservar el formato.fuente
También es posible que desee ver el comando mágico de creación de perfiles de Python
%prun
que proporciona algo como:luego
volverá
Me resulta útil cuando trabajo con grandes fragmentos de código.
fuente
Cuando está en problemas, qué significa qué:
?%timeit
o??timeit
Para obtener los detalles:
fuente
Si desea imprimir el tiempo de ejecución de la celda de pared aquí es un truco, use
pero aquí asegúrate de que el %% del tiempo es una función mágica, así que ponlo en la primera línea de tu código .
si lo coloca después de alguna línea de su código, le dará un error de uso y no funcionará.
fuente