Je viens d'écrire mon premier tutoriel complet sur Python en utilisant les notebooks d'IPython. Tout s'est bien passé, sauf que j'ai fait beaucoup de tests et de déplacements de blocs. Comment puis-je réinitialiser le In [ ]:
la numérotation ? J'ai essayé de quitter et de recharger, mais cela ne semble pas fonctionner.
Réponses
Trop de publicités?J'arrive un peu tard, mais j'ai eu le même problème, et comme mon ordinateur portable avait des cellules avec un temps d'exécution allant jusqu'à 5 minutes, j'ai dû attendre longtemps jusqu'à ce que Redémarrer et exécuter tout terminé.
J'ai donc créé un script Python pour faire cette tâche à ma place :
import json
file = '/your/notebook/path/Notebook.ipynb'
# Since every notebook is actually a JSON (JavaScript
# Object Notation), then its contents can be represented
# in a dictionary (or a list of dictionaries)
with open(file, encoding='utf-8') as f:
nb = json.load(f)
count = 1
for cell in nb['cells']:
# Markdown cells doesn't have execution count,
# so apply this only to cells that have one
if 'execution_count' in cell:
cell['execution_count'] = count
count += 1
# Not all code cells have output, such as functions
# that return None or simple declarations, so apply
# this only to cells that have some output
try:
for output in cell['outputs']:
if 'execution_count' in output:
output['execution_count'] = cell['execution_count']
except KeyError:
continue
with open(file, 'w+') as f:
json.dump(nb, f, indent=2, ensure_ascii=False)
Mais faites attention à l'ordre d'exécution et aux variables dans vos cellules, car l'application du script ci-dessus sur votre notebook peut générer un résultat différent si vous exécutez à nouveau le notebook. Par exemple, supposons que votre notebook ait les cellules suivantes avec l'ordre d'exécution entre crochets :
In [2]: a = 1
In [1]: a = 2
In [3]: a
Out[3]: 1
Si vous appliquez le script ci-dessus dans votre carnet de notes, il affichera ce qui suit :
In [1]: a = 1
In [2]: a = 2
In [3]: a
Out[3]: 1
Mais si vous exécutez à nouveau le bloc-notes, il affichera ce qui suit :
In [1]: a = 1
In [2]: a = 2
In [3]: a
Out[3]: 2
Cela peut être un peu déroutant pour les personnes qui téléchargent votre carnet de notes via GitHub par exemple, car elles peuvent voir une sortie dans le référentiel, mais lorsqu'elles l'exécutent sur leur machine, la sortie sera différente.
- Réponses précédentes
- Plus de réponses