web-dev-qa-db-fra.com

Comment exécuter le code ligne par ligne dans jupyter-notebook?

Je lis le livre, Python Machine Learning, Et j'ai essayé d'analyser le code. Mais il ne propose que le fichier *.ipynb Et cela me rend très gênant.

Par exemple,

enter image description here

Dans ce code, je ne veux pas exécuter tout In[9] Mais je veux exécuter ligne par ligne afin de pouvoir vérifier chaque valeur de variable et savoir ce que fait chaque fonction de bibliothèque.

Dois-je commenter chaque fois que je veux exécuter une partie des codes? Je veux juste quelque chose comme Execute the block part Comme dans MATLAB

Et aussi, disons que je commente une partie du code et que j'exécute ligne par ligne. Comment puis-je vérifier la valeur de chaque variable sans utiliser print() ou display()? Comme vous le savez, je n'ai pas besoin d'utiliser print() pour vérifier la valeur dans python interactive Shell Dans le terminal. Y a-t-il une manière similaire dans Jupyter?

21
user3595632

ast_node_interactivity

Dans Jupyter Notebook ou dans la console IPython, vous pouvez configurer ce comportement avec ast_node_interactivity :

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

Exemples

Avec cette configuration, chaque ligne sera assez imprimée, même si elle se trouve dans la même cellule.

  • Dans le cahier:

Jupyter notebook multiple lines

  • Dans la console IPython:

IPython console multiple lines

Remarques

  • None n'est pas affiché.

  • Il existe de nombreux autres conseils utiles ici ("28 conseils, astuces et raccourcis pour Jupyter Notebook - Dataquest").

12
Eric Duminil

Vous pouvez simplement ajouter de nouvelles cellules, puis couper et coller les pièces souhaitées dans les nouvelles cellules. Ainsi, par exemple, vous pouvez placer les importations et %matplotlib inline Dans la première cellule (car celles-ci ne doivent être exécutées que lors de la première ouverture du bloc-notes), la génération y dans la seconde, la génération X dans la troisième et le traçage dans la quatrième. Ensuite, vous pouvez simplement exécuter chaque cellule l'une après l'autre. Ce n'est qu'un exemple, vous pouvez le diviser comme vous le souhaitez (bien que je recommande de regrouper les importations au tout début).

Quant à l'impression, si la dernière ligne d'une cellule n'est pas affectée à une variable, elle est automatiquement imprimée. Par exemple, disons que ce qui suit est une cellule:

y = df.iloc[0:100, 4].values
y = np.where(y == 'spam', -1, 1)
y

Ensuite, le contenu de y sera affiché après la cellule. De même, si vous avez une cellule avec ces contenus:

y = df.iloc[0:100, 4].values
y = np.where(y == 'spam', -1, 1)
y.sum()

Ensuite, le résultat de l'opération y.sum() sera affiché après la cellule. En revanche, si la cellule suivante est exécutée, rien n'est imprimé:

y = df.iloc[0:100, 4].values
y = np.where(y == 'spam', -1, 1)

Rien n'est imprimé non plus pour celui-ci:

z = {}
y = df.iloc[0:100, 4].values
z['spam'] = np.where(y == 'spam', -1, 1)
3
TheBlackCat

Dans les ordinateurs portables PyCharm Jupyter, vous pouvez simplement cliquer avec le bouton droit et diviser la cellule, le clic droit fusionner lorsque vous avez terminé.

0
Jonathan