magic - ipython shell
¿Puedes capturar la salida de los métodos mágicos de ipython?(cronométralo) (2)
PD: esto está en un cuaderno ipython si eso hace una diferencia.
No, no lo hace.
En dev hay te %%capture
la magia celular. La otra forma sería modificar la magia de timeit para devolver el valor en lugar de imprimir, o usar el módulo de timeit. Parches bienvenidos.
Quiero capturar y trazar los resultados de 5 o timeit
llamadas de tiempo con tamaños de N logarítmicamente crecientes para mostrar cómo el methodX()
escala con la entrada.
Hasta ahora he intentado:
output = %timeit -r 10 results = methodX(N)
No funciona...
Tampoco se puede encontrar información en los documentos. Siento que deberías poder al menos interceptar la cadena que se imprime. Después de eso puedo analizarlo para extraer mi información.
¿Alguien ha hecho esto o lo ha intentado?
PD: esto está en un cuaderno ipython si eso hace una diferencia.
Esta pregunta duplicada Captura el resultado de una función mágica de IPython tiene una answer que demuestra que esto ya se ha implementado.
Llamando a %timeit
magic con la opción -o
como:
%timeit -o <statement>
devuelve un objeto TimeitResult
que es un objeto simple con toda la información sobre el %timeit
ejecuta como atributos. Por ejemplo:
In [1]: result = %timeit -o 1 + 2
Out[1]: 10000000 loops, best of 3: 23.2 ns per loop
In [2]: result.best
Out[2]: 2.3192405700683594e-08