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,
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
?
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"
Avec cette configuration, chaque ligne sera assez imprimée, même si elle se trouve dans la même cellule.
None
n'est pas affiché.
Il existe de nombreux autres conseils utiles ici ("28 conseils, astuces et raccourcis pour Jupyter Notebook - Dataquest").
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)
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é.