Gostaria de obter o tempo gasto na execução da célula, além da saída original da célula.
Para esse fim, tentei, %%timeit -r1 -n1
mas ele não expõe a variável definida dentro da célula.
%%time
funciona para a célula que contém apenas 1 instrução.
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
Qual é a melhor maneira de fazer isso?
Atualizar
Estou usando o tempo de execução no Nbextension há algum tempo. Isso é ótimo.
python
ipython
ipython-notebook
jupyter
colinfang
fonte
fonte
x
linha de exibição na próxima célula?Respostas:
Use a magia das células e este projeto no github de Phillip Cloud:
Carregue-o colocando-o na parte superior do seu notebook ou no arquivo de configuração, se você sempre quiser carregá-lo por padrão:
Se carregado, cada saída da execução subsequente da célula incluirá o tempo em minutos e segundos necessários para executá-la.
fonte
pip install ipython-autotime
%%time
funciona mesmo quando a última declaração não éprint
.A única maneira que encontrei para superar esse problema é executando a última instrução com impressão.
Não se esqueça que a magia das células começa com
%%
e a magia das linhas começa com%
.Observe que quaisquer alterações realizadas dentro da célula não são levadas em consideração nas próximas células, algo que é contra-intuitivo quando existe um pipeline:
fonte
%%time
ea=1
a segunda célula não sabe o quea
é?%time
e%timeit
agora fazem parte dos comandos mágicos internos do ipythonfonte
Uma maneira mais fácil é usar o plug-in ExecuteTime no pacote jupyter_contrib_nbextensions.
fonte
Eu simplesmente adicionei
%%time
no início da célula e consegui o tempo. Você pode usar o mesmo no cluster / ambiente virtual do Jupyter Spark usando o mesmo. Basta adicionar%%time
na parte superior da célula e você obterá a saída. No cluster de spark usando o Jupyter, adicionei ao topo da célula e obtive a saída como abaixo: -fonte
fonte
Você pode usar a
timeit
função mágica para isso.Ou na célula
Verifique mais funções mágicas do IPython em https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb
fonte
Isso não é exatamente bonito, mas sem software extra
Então você pode executá-lo como:
fonte
Às vezes, a formatação é diferente em uma célula ao usar
print(res)
, mas o jupyter / ipython vem com adisplay
. Veja um exemplo da diferença de formatação usando pandas abaixo.A
display
instrução pode preservar a formatação.fonte
convém também consultar o comando mágico de criação de perfil do python,
%prun
que fornece algo como -então
retornará
Acho útil quando se trabalha com grandes pedaços de código.
fonte
Quando estiver com problemas, o que significa o que:
?%timeit
ou??timeit
Para obter os detalhes:
fonte
Se você quiser imprimir o tempo de execução das células da parede, aqui está um truque, use
mas aqui, verifique se %% time é uma função mágica. Coloque-o na primeira linha do seu código .
se você colocá-lo após alguma linha do seu código, isso causará um erro de uso e não funcionará.
fonte