相关疑难解决方法(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笔记本中运行哪些单元格的简单方法

我有一个ipython笔记本,它在数据处理程序中运行几个步骤,并在整个过程中将信息保存在文件中.这样,在开发我的代码时(主要是在一个单独的.py模块中),我可以跳过并运行各种步骤.我想设置它以便我可以Cell- > run all但只让它执行某些易于选择的选定步骤.例如,我想要定义我想在dict中运行的步骤,如下所示:

process = {
    'load files':False,
    'generate interactions list':False,
    'random walk':True,
    'dereference walk':True,
    'reduce walk':True,
    'generate output':True
}
Run Code Online (Sandbox Code Playgroud)

然后步骤将基于此dict运行.顺便说一下,每个步骤包括多个细胞.

我认为%macro不是我想要的,因为任何时候我改变任何东西或重新启动内核我都必须重新定义宏,改变单元格数.

那些线上是否有像魔术%skip%skipto魔法一样的东西?或者也许是一种干净的方式放在细胞的开头,if process[<current step>]: %dont_run_rest_of_cell

ipython ipython-notebook

6
推荐指数
4
解决办法
5680
查看次数

跳转到下一个代码单元(IPython 笔记本)

我使用 IPython 2.0 Notebook 进行教学。

笔记本是在教学课程之前创建的,并在课程期间按原样使用。

当然,当我准备笔记本时,我按顺序访​​问所有单元格是有意义的(实际上,我没有)。

回到课堂,当我向学生展示概念和代码时,我不需要将焦点放在下一个单元格上,我只需要光标在下一个代码单元格中等待......

我最希望的是有人能够更改 Shift-Enter 的默认行为,以便它执行当前单元格,并跳转到下一个可执行单元格。

已经完成了吗?

user-interface customization ipython ipython-notebook

2
推荐指数
1
解决办法
3087
查看次数