我用的是ipython Jupyter笔记本。假设我定义了一个函数,它在屏幕上占据了很大的空间。有办法让细胞崩溃吗?
我希望函数保持执行和可调用,但我想隐藏/折叠单元格,以便更好地可视化笔记本。我该怎么做呢?
我用的是ipython Jupyter笔记本。假设我定义了一个函数,它在屏幕上占据了很大的空间。有办法让细胞崩溃吗?
我希望函数保持执行和可调用,但我想隐藏/折叠单元格,以便更好地可视化笔记本。我该怎么做呢?
当前回答
正如其他人所提到的,您可以通过nbextensions来实现这一点。我想简单地解释一下我所做的事情,既快捷又简单:
启用可折叠标题: 在您的终端中,首先输入以下命令启用/安装Jupyter Notebook Extensions:
pip install jupyter_contrib_nbextensions
然后,输入:
jupyter contrib nbextension install
重新打开Jupyter Notebook。进入“编辑”选项卡,选择“nbextensions config”。 取消标题“可配置的nbextensions”下的复选框,然后选择“可折叠标题”。
其他回答
更新:
更新的jupyter-lab是一个更现代和功能丰富的界面,默认支持单元格折叠。请看下面@intsco的回答
更新2
由于jupyter-lab现在也支持扩展,您可以使用collapsible_heading扩展扩展内置的单元格折叠功能。
最初的回答:
jupyter contrib nbextensions Python包包含一个代码折叠扩展,可以在笔记本中启用。点击链接(Github)获取文档。
使用命令行安装:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
为了便于管理它们,我还推荐jupyter nbextensions配置器包。这在Notebook界面中提供了一个额外的选项卡,在那里您可以轻松地(解除)激活所有已安装的扩展。
安装:
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
还有一个潘岩建议的改进版本。它添加了显示代码单元格的按钮:
%%html
<style id=hide>div.input{display:none;}</style>
<button type="button"
onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">
Show inputs</button>
或python:
# Run me to hide code cells
from IPython.core.display import display, HTML
display(HTML(r"""<style id=hide>div.input{display:none;}</style><button type="button"onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">Show inputs</button>"""))
这个问题有很多答案,我觉得所有的答案都不令人满意(有些比其他的多),在许多扩展中-代码折叠,按标题折叠等等。没有人能简单有效地做我想要的事情。我真的很惊讶,一个解决方案还没有实现(因为它已经为Jupyter实验室)。
事实上,我非常不满意,以至于我开发了一个非常简单的笔记本扩展,可以在笔记本单元格中展开/折叠代码,同时保持它的可执行性。
GitHub存储库:https://github.com/BenedictWilkinsAI/cellfolding
下面是扩展的一个小演示:
只需双击左边的代码单元格,就可以将其折叠成一行:
再次双击将展开单元格。
扩展可以轻松安装与pip:
pip install nbextension-cellfolding
jupyter nbextension install --py cellfolding --user
jupyter nbextension enable --py cellfolding --user
并且也与nbeextension配置器兼容。我希望人们会发现这有用!
我有同样的问题,我发现这个扩展有用
pip install aquirdturtle_collapsible_headings
你不需要做太多,除了启用扩展:
http://localhost:8888/nbextensions?nbextension=collapsible_headings
http://localhost:8888/nbextensions?nbextension=codefolding/main
很可能你会在这里找到你所有的扩展:
http://localhost:8888/nbextensions