从/到python和r脚本的jupyter笔记本

nbsrc的Python项目详细描述


从/到python或r脚本的jupyter笔记本

PypiPypiBuild Statuscodecov.iopylint ScorepyversionsBinder

jupyter笔记本是复杂的文件,包含源代码、元数据和 丰富的输出。在这里,我们为jupyter提供了一个简单的补充格式 笔记本,作为纯python(或r)的配套脚本。

生成的python脚本非常适合 将笔记本电脑置于版本控制之下。他们可以是 在Jupyter之外编辑,使用 你最喜欢的文本编辑器,甚至标准的合并工具,如果你想合并 对笔记本的多次投稿。

使用nbsrc包,任何python或r脚本都可以作为笔记本加载 在朱庇特。如果存在一个具有匹配名称的经典^ {< CD2> }笔记本, 匹配输入的输出被重构。如果你把python 和jupyter文件,如下所示,当打开ipynb笔记本时, 相应的输入来自py文件,您可能已经更新了该文件 在朱庇特外面。

能给我演示一下吗?

当然。试试我们的包裹binder! 在那里,您将能够

  • 以笔记本形式打开和执行任意python文件(请尝试 matplotlib演示名为filled_step.py
  • 若要打开笔记本,请编辑相应的python脚本,然后重新加载笔记本, 在Jupyter中查找最新的输入。

python版本看起来怎么样?

下面是jupyter笔记本的一个例子,以及它的python表示。

我们有数百项测试,确保

  • 往返转换:python到notebook到python,is identity
  • 往返转换,从jupyter笔记本开始,保留源代码 和元数据,而不是输出。在某些情况下(在 代码单元格),可以将单元格拆分为较小的单元格。
Python notebook in JupyterPython script

笔记本的r脚本表示遵循该语言的standard

如何激活配套脚本?

  • 使用jupyter notebook --generate-config
  • 编辑配置并包含以下内容:
c.NotebookApp.contents_manager_class='nbrmd.RmdFileContentsManager'c.ContentsManager.default_nbrmd_formats='ipynb,py'

然后,确保你有^{} 打包最新的,然后重新启动jupyter,即运行

pip install nbrmd --upgrade
jupyter notebook

有了以上配置,每个Jupyter笔记本都将有一个同伴 .py脚本。以及在jupyter中编辑的每个.py脚本 会有一个同伴的笔记本。

如果您不希望jupyter在 脚本已编辑,设置

c.ContentsManager.default_nbrmd_formats = ''

(因为默认值是ipynb)。但是,脚本的输出, 将不再被保存。

每个笔记本配置

使用上述配置,每个笔记本都将有一个配套的.py文件。

如果您希望仅为少数笔记本生成配套脚本, 然后从jupyter中删除c.ContentsManager.default_nbrmd_formats行 配置,并按如下方式编辑笔记本元数据:

{
  "kernelspec": {
    "name": "python3",
    (...)
  },
  "language_info": {
    (...)
  },
  "nbrmd_formats": "ipynb,py"
}

可接受的格式有:.ipynb.Rmd.py.R

如果您同时需要.py.Rmd,请注意 顺序问题:第一个非.ipynb扩展 是用作笔记本输入的参考源的。

nbsrcnbrmd有什么区别?

^{} 是一个python包,将jupyter笔记本表示为r markdown 文件夹。它也是实现笔记本作为python脚本的地方。但是 我觉得笔记本作为脚本应该有一个独立的文档,而且 这就是拥有nbsrc包的主要原因。

实际上不需要nbsrc包,除非需要命令行 转换工具。

命令行转换

nbsrc包提供了转换jupyter笔记本的nbsrc脚本 到r或python脚本,反之亦然。

安装
pip install nbsrc --upgrade

然后将其用作:

nbsrc jupyter.ipynb         # this prints the `.py` or `.R` alternative
nbsrc jupyter.ipynb -i      # this creates a jupyter.py or jupyter.R file
nbsrc jupyter.py    -i      # and this, a jupyter.ipynb file
nbsrc jupyter.py    -i -p   # update the jupyter.ipynb file and preserve outputs that correspond to unchanged inputs

或者,nbsrc包p提供两个nbconvert导出器,可用于

nbconvert jupyter.ipynb --to pynotebook
nbconvert jupyter.ipynb --to rnotebook

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法通过BasicAuth登录   在Java中使用LinkedHashMap进行缓存的hashmap   机器学习在Weka Java API中为MLP模型设置多属性作为类属性   javafx中的java可编辑表格视图   java我怎样才能知道AudioPlayer中是否播放了一些文件?   java如何在Netbeans中配置spring概要文件?   json您能告诉我如何在@Query(“{ask':?0}”)上正确编辑这个java注释mongodb吗?   java理论:如何结合Servlet和iphone应用程序   每次使用Spring Boot后java回滚事务   JavaTomcat:HTTP状态404   java命令不注册MinecraftForge 1.8   java从安卓保存csv。共享时文件未命名   java“在每个项目中创建名为“entityManagerFactory”且在类路径资源中定义的bean时出错”   Java:如何获得字符串的双向数字表示?   学习java:字符比较   java如何从TimePrimitive转换为int?   将Tenserflow实现从Python转换为Java   lambda如何使用java流只替换列表<Character>的第一个元素,而不更改列表的其余部分?