更好的 Jupyter 笔记本命名约定

6 jupyter jupyter-notebook

命名 Jupyter notebook 时,如果使用空格,即

This is my notebook.ipynb
Run Code Online (Sandbox Code Playgroud)

然后它在使用网络浏览器打开时呈现得非常好。然而,空格在命令行环境中是有害的。但如果相反:

This_is_my_notebook.ipynb
Run Code Online (Sandbox Code Playgroud)

或者

This-is-my-notebook.ipynb
Run Code Online (Sandbox Code Playgroud)

那么呈现的标题看起来那么好。关于替代约定的任何建议,但看起来仍然有些不错?

Ale*_*exG 6

这实际上取决于您的个人喜好和用例。这是我使用的方法:

我的方法

[#]_[2-4 word description]_[DS-initials]_[ISO 8601 date].ipynb
Run Code Online (Sandbox Code Playgroud)

例如

- jupyter-notebooks
  + 1_exploratory_analysis_ag_2019-02-16.ipynb
  + 1_exploratory_analysis_jw_2019-02-19.ipynb
  + 1_exploratory_analysis.ipynb
  + 1_exploratory_analysis.py
  + 1_exploratory_analysis.html
  + 2_topic_modeling_ag_2019-02-20.ipynb
  + 2_topic_modeling.ipynb
  + 2_topic_modeling.py
  + 2_topic_modeling.html
  + dev_2019-02-15.ipynb
  + dev_2019-02-18.ipynb
  + dev.ipynb
  + dev.py
  + dev.html
Run Code Online (Sandbox Code Playgroud)
  • 在这里,我将所有笔记本放在一个名为jupyter-notebooks. 文件和脚本输出通常位于此文件夹之外。

  • 如果适用,笔记本按逻辑顺序编号,例如首次创建日期。在许多情况下,给文件编号是没有意义的(例如我的这个 repo)。

  • 笔记本版本带有时间戳和(可选)最近作者的姓名首字母。这可以通过保存后挂钩自动完成(见下文)。

  • 笔记本的非时间戳版本具有.py.html版本。通过将.py文件提交到 git,您可以获得版本控制的一些好处。这些文件也可以使用 post-save hook 生成。

  • 其他开发工作可以放在dev...文件中。

我设置了一个保存后挂钩来自动执行此操作。在我的配置文件 ( ~/.jupyter/jupyter_notebook_config.py) 中,我有:

[#]_[2-4 word description]_[DS-initials]_[ISO 8601 date].ipynb
Run Code Online (Sandbox Code Playgroud)

如果保存非时间戳文件,这将自动转换为.py.html,并制作时间戳版本。

另一种方法

我的大会深受这篇博文的启发。他们描述了我几年前开始使用的约定,然后再采用我自己的变体。

这是它们包含的示例:

- develop
  + [ISO 8601 date]-[DS-initials]-[2-4 word description].ipynb
  + 2015-06-28-jw-initial-data-clean.html
  + 2015-06-28-jw-initial-data-clean.ipynb
  + 2015-06-28-jw-initial-data-clean.py
  + 2015-07-02-jw-coal-productivity-factors.html
  + 2015-07-02-jw-coal-productivity-factors.ipynb
  + 2015-07-02-jw-coal-productivity-factors.py
- deliver
  + Coal-mine-productivity.ipynb
  + Coal-mine-productivity.html
  + Coal-mine-productivity.py
Run Code Online (Sandbox Code Playgroud)

如您所见,开发和交付笔记本有单独的文件夹(和命名约定)。


小智 1

我发现自己也在寻找这个答案......

我以工作标准化为幌子,搜索了一些涉及 .ipynb 文件的流行 GitHub 存储库。我发现破折号和下划线的使用没有标准;但是,我没有看到任何笔记本使用空格 - 所以不要这样做。

资料来源:

https://github.com/IRkernel/IRkernel/tree/master/example-notebooks

https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/tree/master/Supporting_Notebooks