在jupyter中,标记在单元格上的用法是什么?

时间:2017-12-28 21:54:43

标签: python jupyter-notebook

我发现,在jupyter笔记本中,单元格上有一个标记工具,可以通过“View - Cell Toolbar - Tags”激活。但我无法弄清楚,为什么我们需要这些标签。有人可以提供一些建议或用法示例吗?

enter image description here

3 个答案:

答案 0 :(得分:5)

标记是jupyter-notebooks的一个相当新近的,可能还没有完成的功能,添加了version 5.0。据我所知,它们主要用于nbconvert(将笔记本电脑转换为其他格式,如pdf)和nbval(验证笔记本电脑)以及其他或多或少使用jupyter笔记本电脑的集成工具。能够向单元格添加标签将根据单元格标签为这些工具启用不同的行为。可以通过添加标签来完成的一些示例是:

  • nbconvert - 隐藏单元格,隐藏输入,使输出可见, 折叠一个细胞留下一种揭示它的方法
  • nbconvert to latex - markdown cell包含title(或subtitle,abstract ...)
  • nbval - 检查/忽略来自单元格的输出,跳过执行单元格,期望一个单元格 提出错误
  • nbgrader - 解决方案单元格,测试单元格
  • nbparameterise - 单元格包含输入参数。

由takluyver在jupyter's github设想的。如果您想了解有关实施的更多信息以及围绕它的讨论,您可以阅读更多here

答案 1 :(得分:2)

除了克里斯汀的答案,还有一个重要的实用工具,您可以从使用标签中获得。您可以运行所有单元,即使遇到运行时错误也可以继续运行。您用raises-exception标签标记一个单元格。对于教育目的非常有用。 Source

答案 2 :(得分:0)

如上面的Christian所指出的,一个很大的用途是为此笔记本程序提供不同的输入参数值,nbparameterise是一个示例。 See here。 Papermill是另一种:see here

从用户的角度来看,可以通过使用env变量os.getenv()或从命令行参数sys.getargv()获取来实现相同的目的,但是将标记添加到单元格似乎是最简单的。

在后台,将jupyter笔记本另存为json文件。假设您将第一个单元格标记为Parameters,并声明变量var1 = 10和var2 ='adam'。 json文件如下所示,标签位于元数据部分。因此,使用工具轻松解析此json并转到标签部分,然后说要用不同的值替换变量。

{
  "cells": [
  {
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {
      "tags": [
        "Parameters"
      ]
    }, 
    ....
  },
  "source": [
    "var1 = 10",
    "var2 = 'adam'"
 ]