Je voudrais obtenir le temps passé sur l'exécution de la cellule en plus de la sortie d'origine de la cellule.
À cette fin, j'ai essayé %%timeit -r1 -n1
mais cela n'expose pas la variable définie dans la cellule.
%%time
fonctionne pour la cellule qui ne contient qu'une seule instruction.
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
Quelle est la meilleure façon de le faire?
Mettre à jour
J'utilise Execute Time dans Nbextension depuis un certain temps maintenant. C'est super.
python
ipython
ipython-notebook
jupyter
colincroc
la source
la source
x
ligne d'affichage dans la cellule suivante?Réponses:
Utilisez la magie cellulaire et ce projet sur github par Phillip Cloud:
Chargez-le en le mettant en haut de votre notebook ou mettez-le dans votre fichier de configuration si vous voulez toujours le charger par défaut:
S'il est chargé, chaque sortie de l'exécution de cellule suivante inclura le temps en minutes et en secondes nécessaire pour l'exécuter.
la source
pip install ipython-autotime
%%time
même lorsque la dernière instruction ne l'est pasprint
.Le seul moyen que j'ai trouvé pour surmonter ce problème est d'exécuter la dernière instruction avec print.
N'oubliez pas que la magie cellulaire commence par
%%
et la magie des lignes commence par%
.Notez que les modifications effectuées à l'intérieur de la cellule ne sont pas prises en compte dans les cellules suivantes, ce qui est contre-intuitif lorsqu'il y a un pipeline:
la source
%%time
eta=1
que la 2ème cellule ne sait pas ce quea
c'est?%time
et%timeit
maintenant font partie des commandes magiques intégrées d'ipythonla source
Un moyen plus simple consiste à utiliser le plugin ExecuteTime dans le package jupyter_contrib_nbextensions.
la source
J'ai simplement ajouté
%%time
au début de la cellule et j'ai obtenu l'heure. Vous pouvez utiliser le même sur le cluster Jupyter Spark / l'environnement virtuel en utilisant le même. Ajoutez simplement%%time
en haut de la cellule et vous obtiendrez la sortie. Sur le cluster d'étincelles utilisant Jupyter, j'ai ajouté en haut de la cellule et j'ai obtenu une sortie comme ci-dessous: -la source
la source
Vous pouvez utiliser
timeit
la fonction magique pour cela.Ou sur la cellule
Vérifiez plus de fonctions magiques IPython sur https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb
la source
Ce n'est pas vraiment beau mais sans logiciel supplémentaire
Ensuite, vous pouvez l'exécuter comme:
la source
Parfois, le formatage est différent dans une cellule lors de l'utilisation
print(res)
, mais jupyter / ipython est livré avec un fichierdisplay
. Voir un exemple de la différence de formatage à l'aide de pandas ci-dessous.L'
display
instruction peut conserver la mise en forme.la source
vous pouvez également consulter la commande magique de profilage de python
%prun
qui donne quelque chose comme -puis
reviendra
Je trouve cela utile lorsque vous travaillez avec de gros morceaux de code.
la source
En cas de problème, ce qui signifie quoi:
?%timeit
ou??timeit
Pour obtenir les détails:
la source
Si vous souhaitez imprimer le temps d'exécution de la cellule murale, voici une astuce, utilisez
mais ici assurez-vous que le temps %% est une fonction magique, alors mettez-le en première ligne dans votre code .
si vous le mettez après une ligne de votre code, cela vous donnera une erreur d'utilisation et ne fonctionnera pas.
la source