我正在读一本名为Python Machine Learning的书,并试图分析代码。但它只提供*.ipynb文件,这让我非常烦恼。
例如,

在这段代码中,我不想运行整个In[9],而是逐行运行,这样我就可以检查变量的每个值,并了解每个库函数的作用。
每次我想要执行部分代码时,我都需要注释吗?我只想要像MATLAB中那样的Execute the block part
还有,假设我注释了代码的某一部分,并逐行执行。如何在不使用print()或display()的情况下检查每个变量的值?正如您所知道的,我不必使用print()来检查终端的python interactive shell中的值。在Jupyter中也有类似的方式吗?
发布于 2018-01-09 15:43:12
ast_node_interactivity
在Jupyter Notebook或IPython控制台中,您可以使用ast_node_interactivity配置此行为:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"示例
有了这个配置,每一行都可以很好地打印出来,即使它们在同一个单元格中。
笔记本中的

IPython console中的

备注
Jupyter Notebook isn't displayed.
“)
发布于 2016-07-12 21:44:39
您只需添加新单元格,然后将想要的部分剪切并粘贴到新单元格。因此,例如,您可以将imports和%matplotlib inline放在第一个单元格中(因为它们只需要在第一次打开笔记本时运行),将y生成放在第二个单元格中,将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)也没有为这个打印任何内容:
z = {}
y = df.iloc[0:100, 4].values
z['spam'] = np.where(y == 'spam', -1, 1)发布于 2019-09-01 14:03:44
在PyCharm Jupyter Notebook中,您只需右键单击并拆分单元格,完成后右键单击合并。
https://stackoverflow.com/questions/38320837
复制相似问题