如何以编程方式在 jupyter 笔记本中添加幻灯片单元格元数据?

2024-03-03

Jupyter 笔记本有一种可视化单元格元数据的方法,以便您能够使用以下命令参数化当您将笔记本导出到幻灯片时单元格的外观nbconvert.

Example: enter image description here

例如,我想以编程方式将该元数据添加到单元格中,而不使用 GUI,以便我可以自动创建幻灯片,特别是来自 google colaboratory,因为它不支持编辑单元格元数据 tool.

我遇到过这个参考

https://jupyterbook.org/en/stable/content/metadata.html#add-tags-using-python-code https://jupyterbook.org/en/stable/content/metadata.html#add-tags-using-python-code

它以编程方式添加元数据以隐藏单元代码。我希望能够做同样的事情,但是添加幻灯片元数据。例如我不确定什么{tags:values}或我应该遵循的语法。


您可以使用nbformat https://nbformat.readthedocs.io/en/latest/api.html#像您指出的示例一样执行此操作。

“nbformat 包允许您以编程方式读取和解析笔记本文件。” -消息来源,托尼·赫斯特的描述 https://discourse.jupyter.org/t/is-it-possible-to-programmatically-wrap-markdown-cells/1529/2?u=fomightez

nbformat 是 Jupyter 的一部分,因此它可以在您运行笔记本的任何地方运行。

我使用 nbformat 来做与你的目标类似的事情here https://github.com/fomightez/imgs2RISEslides(处于进行中状态)。最相关的部分是here https://github.com/fomightez/imgs2RISEslides/blob/07b0a85960129c5533503aa89c469ae7253908f4/imgs2RISEslides.ipy#L259我将笔记本中单元格的元数据设置为幻灯片放映。这是该部分的要点:

import nbformat as nbf
a = nbf.v4.new_notebook()
for p in image_fn_pairs:
    content_for_md_cell = slideshow_cell_stub_text.replace(
        "THE_IMAGE1_PLACEHOLDER_TEXT_GOES_HERE",p[0]).replace(
        "THE_IMAGE2_PLACEHOLDER_TEXT_GOES_HERE",p[1])
    a.cells.append(nbf.v4.new_markdown_cell(content_for_md_cell))
# fix the metadata for each cell to be for a slide
slide_show_meta = {"slideshow": {"slide_type": "slide"}}
# a.cells = [c["metadata"] = slide_show_meta for c in a.cells]
meta_fixed_cells = []
for c in a.cells:
    c["metadata"] = slide_show_meta
    meta_fixed_cells.append(c)
a.cells = meta_fixed_cells

就您而言,听起来您的笔记本中已经有内容,因此在您的情况下,您需要在笔记本中阅读,首先如下所示:

import nbformat as nbf
ntbk = nbf.read("old_notebook.ipynb", nbf.NO_CONVERT)

然后像我的示例一样修复元数据。沿着这些思路:

new_ntbk = ntbk
# fix the metadata for each cell to be for a slide
slide_show_meta = {"slideshow": {"slide_type": "slide"}}
meta_fixed_cells = []
for c in ntbk.cells:
    c["metadata"] = slide_show_meta
    meta_fixed_cells.append(c)
new_ntbk.cells = meta_fixed_cells
nbf.write(new_ntbk, "notebook_with_slide_metadata.ipynb", version=nbf.NO_CONVERT)

您可以尝试我设置并在上面提到的自动化、正在进行的幻灯片构建过程,方法是:there https://github.com/fomightez/imgs2RISEslides并点击launch binder。我认为,如果您只是在出现的笔记本中运行内容,它将引导您制作幻灯片,并在每张幻灯片上并排放置一些填充矩形作为图像的替代品。

您还会看到我在中使用了笔记本的存根剧本 https://github.com/fomightez/imgs2RISEslides/blob/07b0a85960129c5533503aa89c469ae7253908f4/imgs2RISEslides.ipy#L135,这是基于笔记本存根 https://github.com/fomightez/imgs2RISEslides/blob/master/RISEnb_stub.ipynb添加整个笔记本的元数据here https://github.com/fomightez/imgs2RISEslides/blob/07b0a85960129c5533503aa89c469ae7253908f4/imgs2RISEslides.ipy#L285这样当笔记本​​打开时就会自动播放幻灯片,即"livereveal": {"autolaunch": true, "scroll": true}部分。



nbconvert 包含一个将编辑元数据的预处理器,请参阅here https://github.com/jupyter/nbconvert/blob/a8067447af4a90690b762f48ceb46d40207a344e/nbconvert/exporters/slides.py#L15看起来它将添加元数据。



如果您使用 JupyterLab 作为幻灯片开发工具,则可以安装 jupyterlab-deck,它将在工具栏上添加一个“deck”图标,允许您切换幻灯片查看。看用法在这里 https://github.com/deathbeds/jupyterlab-deck#usage。 (在通过 MyBinder 提供的会话的甲板模式下,如果将鼠标移向屏幕顶部,我会看到工具栏。我认为这是因为shift+esc不起作用。或者文档还没有更新。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式在 jupyter 笔记本中添加幻灯片单元格元数据? 的相关文章

  • Python 中的字节数组

    如何在 Python 中表示字节数组 如 Java 中的 byte 我需要用 gevent 通过网络发送它 byte key 0x13 0x00 0x00 0x00 0x08 0x00 在Python 3中 我们使用bytes对象 也称为s
  • 如何将base64字符串直接解码为二进制音频格式

    音频文件通过 API 发送给我们 该文件是 Base64 编码的 PCM 格式 我需要将其转换为 PCM 然后再转换为 WAV 进行处理 我能够使用以下代码解码 gt 保存到 pcm gt 从 pcm 读取 gt 保存为 wav decod
  • 如何使用 pyinstaller 包含文件?

    我也使用 tkinter 使用 python 3 7 编写了一个程序 由于我使用的是外部图片 因此当我将所有内容编译为一个 exe 时 我需要包含它们 我试过做 add data bg png files 但我仍然收到此错误 tkinter
  • Python有条件求解时滞微分方程

    我在用dde23 of pydelay包来求解延迟微分方程 我的问题 如何有条件地编写方程 例如目标方程有两个选项 when x gt 1 dx dt 0 25 x t tau 1 0 pow x t tau 10 0 0 1 x othe
  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • Python在postgresql表中查找带有单引号符号的字符串

    我需要从 psql 表中查找包含多个单引号的字符串 我当前的解决方案是将单引号替换为双单引号 如下所示 sql query f SELECT exists SELECT 1 FROM table name WHERE my column m
  • 希伯来语中的稀疏句子标记化错误

    尝试对希伯来语使用稀疏句子标记 import spacy nlp spacy load he doc nlp text sents list doc sents I get Warning no model found for he Onl
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • 更改 Altair 中的构面标题位置?

    如何将方面标题 在本例中为年份 移动到每个图的上方 默认值似乎位于图表的一侧 这可以轻易改变吗 import altair as alt from vega datasets import data df data seattle weat
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • 如何使用 Keras ImageDataGenerator 预测单个图像?

    我已经训练 CNN 对图像进行 3 类分类 在训练模型时 我使用 keras 的 ImageDataGenerator 类对图像应用预处理功能并重新缩放它 现在我的网络在测试集上训练得非常准确 但我不知道如何在单图像预测上应用预处理功能 如
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • 如何为所有用户安装 Anaconda python?

    Anaconda python 发行版 https store continuum io cshop anaconda 非常方便地部署科学计算环境 SCE 并根据需要切换python版本 默认情况下 安装会将 python 定位到 anac
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐