相关疑难解决方法(0)

如何(间歇性地)在运行IPython笔记本时跳过某些单元格?

我重新打开笔记本时通常必须重新运行(大多数部分)笔记本,以便访问以前定义的变量并继续工作.

但是,有时我想跳过一些对后续细胞没有影响的细胞(例如,它们可能包含完成的分析分支)并且可能需要很长时间才能运行.这些细胞可以分散在整个笔记本中,因此像"Run All Below"这样的东西也无济于事.

有没有办法实现这个目标?

理想情况下,这些单元格可以使用一些特殊标记进行标记,以便它们可以手动"运行",但在"全部运行"时将被跳过.

编辑

%%cache (@ ipak扩展)@Jakob建议在某种程度上解决了这个问题.

实际上,我甚至不需要在重新运行时加载任何变量(对于后续单元格而言可能很大但不必要),只有存储的输出才能作为分析结果.

作为一种解决方案,放在%%cache folder/unique_identifier细胞的开头.代码将只执行一次,重新运行时不会加载任何变量,除非您删除unique_identifier文件.

不幸的是,当重新运行时,所有输出结果都会丢失%%cache.

编辑II(2013年10月14日)

ipython + ipycache的主版本现在也会修改(并重新显示)codecell输出.

对于丰富的显示输出,包括Latex,HTML(pandas DataFrame输出),请记住使用IPython的display()方法,例如, display(Latex(r'$\alpha_1$'))

python ipython ipython-notebook ipython-magic

33
推荐指数
4
解决办法
1万
查看次数

在IPython/Jupyter笔记本中导出单个单元格

我能够将整个笔记本导出为HTML,但我想只导出一个单元格及其输出.

有没有办法做到这一点?

export cell ipython jupyter

11
推荐指数
1
解决办法
1297
查看次数

从另一个 Jupyter Notebook 有选择地导入

我将我的 Jupyter 笔记本排列成:data.ipynb,methods.ipynbresults.ipynb. 如何有选择地从数据方法笔记本中导入单元格以在结果笔记本中使用?

我知道的nbimporteripynb,但这些都不提供的变量选择进口。有一个选项可以导入定义 - 包括大写的变量 - 但这对我不起作用,因为我必须将笔记本中的大多数变量转换为大写。

除了需要很长时间评估的两个或三个单元格之外,我宁愿导入所有内容。理想情况下,我想将某些任务的执行推迟到我访问它们的那一刻(懒惰评估) - 但我知道这可能难以实施。

以下是伪代码概述(每行代表一个单元格):

data.ipynb

raw_data = load_data()
dataset = munge(raw_data)
describe(dataset)             # I want this line to be skipped at import
Run Code Online (Sandbox Code Playgroud)

methods.ipynb

import data
method = lambda x: x * x
# showcase how the method works on a subset of the dataset
method(data.dataset[:5])      # I want this line to be skipped …
Run Code Online (Sandbox Code Playgroud)

python python-3.x jupyter data-science jupyter-notebook

6
推荐指数
1
解决办法
1860
查看次数

jupyter笔记本:如何以编程方式停止单元执行,同时继续运行后续单元

我想以编程方式跳过在 jupyter 笔记本的单元格中执行一些代码,而不将所有内容包装在 if-else 块中。

到目前为止,我从这个问题中找到的最接近的解决方案:/sf/answers/3986717381/是这样的:

class StopExecution(Exception):
    def _render_traceback_(self):
        pass

raise StopExecution
Run Code Online (Sandbox Code Playgroud)

但是,它会停止当前单元格的执行以及所有后续单元格的执行,而我只想提前退出当前单元格。有没有办法继续执行其他单元格?

这是一个代码示例:

if skip_page:
    display(HTML('<!--SKIP-PAGE-->'))
    stop_cell()

render_some_output()
Run Code Online (Sandbox Code Playgroud)

如果stop_cell()被调用,我不想render_some_output()执行,而是整体执行笔记本执行。

python jupyter jupyter-notebook

6
推荐指数
1
解决办法
5837
查看次数

从代码单元跳转到特定代码单元(即以编程方式)(jupyter / ipython)

当使用 jupyter 笔记本在 python 中进行原型设计时,我有时必须跳转到位于当前代码单元下方的给定代码单元,跳过之间的单元。

我知道如何在笔记本中添加超链接以从另一个笔记本跳转到任何 Markdown 单元格,但这不适用于代码单元格,并且需要在超链接上单击鼠标。

我想通过在代码单元格中运行命令来跳转到给定单元格。目标代码单元将由用户定义的标签或标签引用(笔记本中的每个代码单元可能已经有自己的单独标签 - 如何识别它?)

我怎么能这样做呢?

我只能设法从代码单元格内创建指向降价单元格的超链接,如下所示:

%%markdown 
[Next](#proper-markdown-cell-tag)
Run Code Online (Sandbox Code Playgroud)

但这仍然需要单击鼠标才能跳转到降价单元(而不是代码单元)。当然,这个目标降价单元可以位于目标代码单元的正上方,但这仍然不是我想要的。


注意:考虑了以下SO答案。

这可以完成这项工作,但我无法选择要跳转到哪个特定单元格。

同样,此 SO 是跳过某些单元格而不是跳转到特定单元格。

这很有趣:运行代码单元后,选择下一个代码单元,跳过任何 Markdown 单元。我以为我可以从解决方案中得到我想要的东西,但我做不到。

python ipython jupyter jupyter-notebook

5
推荐指数
0
解决办法
2648
查看次数