我正在阅读这本书Python Machine Learning
,并尝试分析代码。但它只提供*.ipynb
文件,这让我非常麻烦。
例如,
在这段代码中,我不想运行整个In[9]
但想要逐行运行,以便我可以检查变量的每个值并知道每个库函数的作用。
每次我想执行部分代码时,是否必须发表评论?我只想要像Execute the block part
MATLAB
之类的内容
而且,让我说我评论代码的某些部分并逐行执行。如何在不使用print()
或display()
的情况下检查每个变量的值?如您所知,我不必使用print()
来检查终端中python interactive shell
中的值。 Jupyter
中是否有类似的方式?
答案 0 :(得分:11)
在Jupyter Notebook或IPython控制台中,您可以使用ast_node_interactivity
配置此行为:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
使用此配置,每条线都会打印得很漂亮,即使它们位于同一个单元格中。
None
未显示。
还有许多其他有用的提示here(" 28 Jupyter笔记本提示,技巧和快捷方式 - Dataquest")。
答案 1 :(得分:3)
您可以添加新单元格,然后将所需部件剪切并粘贴到新单元格中。因此,例如,您可以将导入和%matplotlib inline
放在第一个单元格中(因为那些只在首次打开笔记本时才需要运行),第二个中的y
代,{ {1}}第三代产生,第四代产生密谋。然后你可以一个接一个地运行每个单元格。这只是一个例子,您可以根据需要将其拆分(尽管我建议在最开始时将导入放在一起)。
对于打印,如果单元格中的最后一行未分配给变量,则会自动打印。因此,举例来说,以下是一个单元格:
X
然后将在单元格后显示y = df.iloc[0:100, 4].values
y = np.where(y == 'spam', -1, 1)
y
的内容。同样,如果您有一个包含这些内容的单元格:
y
然后,y = df.iloc[0:100, 4].values
y = np.where(y == 'spam', -1, 1)
y.sum()
操作的结果将显示在单元格之后。另一方面,如果执行以下单元格,则不打印任何内容:
y.sum()
也没有为此印刷任何东西:
y = df.iloc[0:100, 4].values
y = np.where(y == 'spam', -1, 1)
答案 2 :(得分:1)
在PyCharm Jupyter笔记本电脑中,您只需右键单击并拆分单元格,完成后右键单击合并。
答案 3 :(得分:0)
我认为您可以在行之间打印变量。这是简单的方法