pycharm和jupyter_怎么让两个图层完美融合

pycharm和jupyter_怎么让两个图层完美融合仅作学术分享,不代表本公众号立场,侵权联系删除转载于:机器之心JupyterNotebook真的是让人又爱又失望,在有的场景下它极其便利,但是在很多大模型或复杂项目上,它又无能为力。…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:机器之心

Jupyter Notebook 真的是让人又爱又失望,在有的场景下它极其便利,但是在很多大模型或复杂项目上,它又无能为力。在 Jupytext 这个项目中,作者希望既能利用 Notebook 的可视化优势,同时也能利用纯文本编写优势。可以说,是时候联合 Jupyter Notebook 与 PyCharm 了。

Jupytext 项目地址:https://github.com/mwouts/jupytext

Jupyter Notebook 哪不行?

Jupyter Notebook 是一款免费、开源的交互式 web 工具。研究人员可以利用该工具将软件代码、计算输出、解释文本和多媒体资源组合在一个文档中。笔记本形式的计算已经发展了几十年,但是过去几年里,Jupyter 特别受欢迎,更是成为数据科学家和机器学习研究者们的首选工具。

在 GitHub 的一项分析中(Nature,30 OCTOBER 2018)显示,截至 2018 年 9 月,公开的 Jupyter Notebook 已经超过了 250 万份,而 2015 年这一数字仅为 20 万左右。Jupyter Notebook 之所以这么流行,主要还是它的演示和可视化,我们可以查看每一段代码的输出与运行效果。

这种可视化对于数据科学和机器学习研究而言非常重要,因为我们需要当前的模型特性做决策。此外,正因为这种直观的可视化输出,我们经常使用它作为模型教程,Colab 这种提供免费 GPU 算力的平台也都采用的是 Jupyter Notebook。

因此总的而言,Jupyter 的主要特点是:

  • 行内代码执行

  • 简单的构思结构

  • 对图片和数据帧的良好展示

但是,Jupyter Notebook 也有不好的地方,我们很难用它做版本控制,也很难用于工程实践。其中比较重要的是版本控制,Jupyter Notebook 采用的是 JSON 结构,可读性比较差。而版本控制能让我们发觉潜在的优秀代码,我们可以关注代码的变化而挖掘到底哪些是重要的。

直到现在,版本控制和 Jupyter Notebook 都是两个世界的人,它们之间基本没有啥关系。虽然也有一些工作尝试结合两者,但成果非常有限,对开发者的使用而言也不友好。

Jupytext 来啦

现在,Jupytext 来啦,我们可以把 Jupyter Notebook 代码转化成纯文本,用我们最喜欢的 IDE 打开。重要的是,Jupytext 能清楚地查看代码的修改记录,从而更好地进行版本控制,这是以前 Jupyter Notebook 所做不到的。这样的 Jupytext 是不是就是你苦苦追寻的工具?

在上面的视频中,项目作者展示了如何快速使用 Jupytext,我们可以使用最喜欢的纯文本编辑器或 IDE 来编辑 Jupyter Notebook。这样子,Jupyter Notebook 也能有快飞一般的编写速度了,因为不论是代码导航、编辑或执行代码单元、debug 代码等等,IDE 都要便捷一些。

当然,如果要使用其它 IDE,Jupyter Notebook 的格式还是要转换的。目前 Jupytext 能将 Jupyter Notebook 转换为一下一些格式:

  • Markdown 和 R Markdown 文档

  • Julia、Python、R、Bash、Scheme、Clojure、Matlab、Octave、C++ 和 q/kdb+ 脚本

如果我们将 Jupyter Notebook 保存为 Python 脚本,那么就可以将 Python 文件导入 Git 仓库,并追踪代码的修改和变化。有意思的是,Python 代码的修改是在 Jupyter Notebook 中完成的,这在以前是无法直接追踪的。

更有意思的是,如果我们需要使用 IDE 重构代码或其它操作,那么可以直接在 PyCharm 中编辑并保存 Python 文件。在刷新 Notebook 后,我们可以继续在 Jupyter 上便捷更新后的代码。相当于,Jupyter 和 PyCharm 联合便捷了~

Jupytext 使用姿势

Jupytext 的安装非常简单,用 pip 或 conda 直接安装就行了。此外,我们有多种方式使用 Jupytext,以下简要展示了几种方式以及使用界面。

直接在 Jupyter Notebook 或 JupyterLab 中使用:Jupytext 提供内容管理器,允许 Jupyter 将 notebook 保存为你喜欢的格式,来补充或替代传统的.ipynb 文件。你可以在自己喜欢的编辑器中边界文本表示。编辑完成后,在 Jupyter 中刷新 notebook 即可:输入单元加载自文本文件,输出单元重新加载自.ipynb 文件。「刷新」这个动作会保存内核变量,这样你就可以无需重新运行 notebook,在 notebook 中继续工作、运行修改后的单元。

在命令行中使用:Jupytext 将 Jupyter notebook 转换为文本表示。命令行工具可以多种方式在 notebook 上运行。它可以同步处理 notebook 的多个表示,将 notebook 输送至 black 等重新格式化工具中。如果你想在提交.ipynb 文件时自动更新文本表示,它还可以作为 pre-commit hook 使用。

在 Vim 中使用:编辑你的 Jupyter notebook,使用 jupytext.vim 将其表示为 Markdown 文档或 Python 脚本。

Jupyter Notebook 中的 Jupytext 菜单是这样的:

pycharm和jupyter_怎么让两个图层完美融合

图片

在 JupyterLab 中以 Notebook 形式打开 MarkDown 脚本是这个样子的:

pycharm和jupyter_怎么让两个图层完美融合

end


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175296.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • metasploit指令_msfconsole下载

    metasploit指令_msfconsole下载在MSF里面msfconsole可以说是最流行的一个接口程序。很多人一开始碰到msfconsole的时候就害怕了。那么多复杂的命令语句需要学习,但是msfconsole真的是一个强大的接口程序。Msfconsole提供了一个一体化的集中控制台。通过msfconsole,你可以访问和使用所有的metasploit的插件,payload,利用模块,post模块等等。Msfconsole还有第三方程序的…

    2025年9月30日
    4
  • linux 删除 软连接(shell创建软连接)

    语法ln(选项)源文件目标文件1、区分符号连接“源文件”可以是文件或者目录硬连接,“源文件”参数只能是文件2、创建软链接ln–s/source/target参数:-s或——symbolic:对源文件建立符号连接,而非硬连接;3、删除软连接rm–rf/target注意:不要在后文件名后面加斜杆“/”否则会删除文件夹的内容参考:ht…

    2022年4月14日
    1.5K
  • PHP中put和post区别

    PHP中put和post区别

    2021年10月12日
    47
  • 扫雷游戏网页版_两个在线版复古小游戏,嗯还是熟悉的味道!「建议收藏」

    扫雷游戏网页版_两个在线版复古小游戏,嗯还是熟悉的味道!「建议收藏」今天给大家推荐两个轻松的网站,其实是两个在线的小游戏网站,分分钟让你找回许久之前的回忆,我们一起来看看吧。01、在线俄罗斯方块网址:http://www.webgame.org.cn看到上图的画面,已经无需多说什么了,“上了年纪”的小伙伴肯定都玩过这个吧,经典中的经典。这个网页的还原度也很高,可以通过键盘控制,老Y也就玩了两个小时而已~02、在线扫雷网址:http://www.saolei.org…

    2025年6月16日
    3
  • 【接口自动化平台搭建】TestNG搭建接口自动化(一)[通俗易懂]

    【接口自动化平台搭建】TestNG搭建接口自动化(一)[通俗易懂]接口自动化平台搭建,TestNG框架下如何进行测试结果的定制化收集。

    2025年6月12日
    6
  • 嵌入式软件架构设计

    嵌入式软件架构设计摘要在开发中一直觉得好的软件架构可以做到事半功倍 而且可以做到代码复用和移植 但是如果没有架构或者说架构很差 那么移植将是很痛苦的事 特别是对不熟悉改功能的人来讲还不如自己写呢 移植不对那将是很头疼的事 所以随着开发越来越多 渐渐的发现我们考虑问题应该从广度和深度来考虑 做新项目的时候 更应该考虑到以后出现的可能性 比如说需求变更 底层变更 所以这个时候软件的架构和程序模块化就很重要

    2025年8月10日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号