网易首页 > 网易号 > 正文 申请入驻

4个提高jupiter Notebooks开发效率的工具

0
分享至

jupiter notebooks 在更广泛的编程社区中名声不佳。乔尔·格鲁斯(Joel Grus)在2018年JupyterCon上勇敢地发表了著名的“我不喜欢notebooks ”演讲,其中涵盖了许多原因。通常,notebook被认为是促进糟糕的编码实践,因为它们很难进行版本控制,经常依赖于以特定顺序运行的单元格来返回正确的结果,并且测试和调试可能很棘手。

但是,当涉及到探索性数据分析和初始机器学习模型开发等任务时,jupiter notebooks 仍然是大多数数据科学家的首选。根据代码可视化输出(如图表和表)以及向分析中添加丰富注释的能力是任何其他工具都无法复制的。

虽然notebook仍然是如此受欢迎的选择,但值得研究一些可用的选项,以克服可能使notebook代码不那么健壮的一些问题。在本文中,我将通过代码示例简要介绍为某些问题提供解决方案的4种工具。这些包括:

1. Nbdime 更好的版本控制

1. nbQA 运行lint

1. Jupyter-nbrequirements 管理依赖

1. nbval 进行验证

Nbdime更好的版本控制

使用Github之类的工具对notebook进行版本控制可能很困难。版本控制工具不能很好地呈现差异,因为它们不能理解典型notebook的逻辑结构。这可能会使跟踪更改和合并代码变得困难,

Nbdime是一个旨在解决这个问题的工具,它提供了更丰富的、可视化的差异,可以很容易地看到同一notebook的不同版本之间的变化。

Nbdime可以通过pip安装。

pip install nbdime

这应该会自动安装和启用扩展。如果没有正确安装,可以使用以下命令手动安装,添加一个标志来确定为——system(系统范围)、——user(当前用户)、——sys-prefix(当前虚拟环境)安装。

nbdime extensions --enable [--sys-prefix/--user/--system]

一旦一切都安装好,如果你打开一个jupiternotebook,你现在应该有以下新图标在你的工具栏。

我创建了一个notebook来展示nbdime的功能,它在波士顿房价数据集上训练一个简单的线性模型。

新的图标现在应该在notebook的工具栏上可用,形成nbdime的web视图功能。这个视图提供了对notebook所做的更改的丰富的可视化表示。

点击git按钮将显示上次提交和当前保存的notebook版本之间的差异。

单击看起来像钟面的图标将显示最新检查点和当前保存的版本之间的差异。

我将对notebook做一些改变,并使用web视图查看与上次提交的差异。

在notebook中,我改变了我正在使用的模型,并对残差图做了一个小的改变。让我们看一下nbdime提供的结果差异。

从下面的图片中可以看到,nbdime逐行和单元格显示了自上次提交以来所更改的内容。它甚至显示了每个单元格的输出是如何改变的,包括图形。

nbQA进行代码检查

Linting是一个检查代码质量的过程。linting工具会扫描代码并检查常见的样式错误。例如,Python lint通常检查不符合广泛使用的风格指南(如Pep8)的代码。

NbQa是一个可以让你在jupiternotebook上运行任何标准python linter的工具。下面的代码可以通过这个工具访问:pylint, black, auto flake, check-ast, doctest, flake8, mypy和yapf。

要安装,只需运行以下程序。

pip install nbqa

让我们在我最近创建的notebook上运行pylint,这是一个常用的python linter。为此,您需要在命令行上运行以下命令。

$ nbqa pylint dataframe_basics.ipynb

这给了我一个标准的pylint输出,它突出显示了代码中的错误。

使用jupyter-nbrequirements管理依赖项

您使用notebook完成的每个项目可能需要不同的依赖项集。传统上,这些是在jupiternotebook外部使用虚拟环境管理的。

Jupyter nbrerequirements是一个工具,它可以让你管理依赖关系,并创建一个独立的优化环境,所有这些都在notebook中管理。

要开始使用pip安装库并使用下面所示的命令启用notebook扩展名。

$ pip install jupyter-nbrequirements$ jupyter nbextension install --user --py jupyter_nbrequirements

您可以通过使用单元魔术命令或使用将在notebook顶部显示的UI来在notebook中安装库。

要使用单元格魔法安装像pandas这样的库,只需在notebook单元格中输入以下内容。

%dep add pandas --version ">=0.24.0"

使用nbval进行验证

正如本文前面所描述的,notebook最常用于模型的探索性分析和初始开发。通常,存储这种类型的分析和最初的项目开发是非常有用的,既可以用于文档目的,也可以用于将来可能基于这项工作的发现进行构建。

py测试插件nbval是验证存储的notebook的有用工具。Nbval将自动运行notebook中的每个单元格,并检查当前输出是否与存储在上一个保存版本的.ipynb文件中的输出匹配。这作为对底层源代码中没有任何更改的检查,从而验证原始分析或实验的结果仍然是可靠的。

要使用此工具,首先通过以下命令进行pip安装。

pip install nbval

通过运行以下命令,可以对目录中包含的所有文件执行测试。

py.test --nbval

或者在一个特定的notebook上运行这行代码。

我在现有的两本notebook上进行测试。第一个运行没有错误,并给出如下输出。

下面给出了一个notebook测试失败的例子。

虽然notebook经常用于探索性分析和初始模型开发,而不是生产代码,但仍然应该被视为一个重要的工作存储。最初的实验和分析是过去结果的有用记录,在以后的日子里应该可以回到notebook上建立你的工作。因此,值得探索的工具可以帮助使在notebook中编写的代码更加健壮和可复制。

本文介绍了四种工具,它们可以帮助使notebook中的代码更好、更可重用。有关可重复数据科学代码的更多提示,请参阅下面我之前的文章。

作者:Rebecca Vickery

deephub翻译组

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
75岁生日夜,一封密信把查尔斯气到脸白!卡米拉这次玩大了

75岁生日夜,一封密信把查尔斯气到脸白!卡米拉这次玩大了

科普启示录小强哥
2026-07-13 10:49:06
已尘封68年!姆巴佩都难以打破的世界杯记录,仅两人有理论可能

已尘封68年!姆巴佩都难以打破的世界杯记录,仅两人有理论可能

泥说体育
2026-07-13 22:13:59
北约为何频频渲染中国威胁搞小动作

北约为何频频渲染中国威胁搞小动作

小眼睛小世界
2026-07-13 06:26:41
断粮断水快撑不住了,菲方对中国喊话:再不撤就开打,必有一战

断粮断水快撑不住了,菲方对中国喊话:再不撤就开打,必有一战

花折亦度无情
2026-06-14 01:40:25
A股:今天,周一,A股为何突然加速跳水?主要是这三个理由!

A股:今天,周一,A股为何突然加速跳水?主要是这三个理由!

明心
2026-07-13 11:46:45
美国院士追踪1400名超级长寿老人,发现老而不衰的关键

美国院士追踪1400名超级长寿老人,发现老而不衰的关键

中信出版集团
2026-07-10 18:37:51
国家药监局和国家医保局联合检查药店和医疗机构

国家药监局和国家医保局联合检查药店和医疗机构

财联社
2026-07-13 17:25:33
再见了,威少,18年的职业生涯啊……

再见了,威少,18年的职业生涯啊……

体育新角度
2026-07-12 22:33:03
库巴西:我们才是最好的球队,应该是对手害怕我们

库巴西:我们才是最好的球队,应该是对手害怕我们

懂球帝
2026-07-13 06:52:32
美日惹了不该惹的,中方海警拿出“真家伙”,慌乱下美走了步臭棋

美日惹了不该惹的,中方海警拿出“真家伙”,慌乱下美走了步臭棋

飘逸语人
2026-07-13 23:10:03
温网卫冕!辛纳技术进化获赞比肩三巨头

温网卫冕!辛纳技术进化获赞比肩三巨头

篮坛第一线
2026-07-14 00:30:39
《Michael》全球票房破10亿刀!创影史纪录

《Michael》全球票房破10亿刀!创影史纪录

生活观察员啊
2026-07-13 00:01:48
有性生活的注意!男人感染HPV后,身体有3个表现,教你一眼看出来

有性生活的注意!男人感染HPV后,身体有3个表现,教你一眼看出来

健康之光
2026-07-09 19:40:05
开门红!郑钦文2-0连赢七局横扫6号种子马内罗 晋级雅典站16强

开门红!郑钦文2-0连赢七局横扫6号种子马内罗 晋级雅典站16强

醉卧浮生
2026-07-14 00:29:09
锡兹兰炼油厂遭重创!炼化设备全损毁,乌军三次突袭战果创下新高

锡兹兰炼油厂遭重创!炼化设备全损毁,乌军三次突袭战果创下新高

老马拉车莫少装
2026-07-13 05:30:07
莫言:如果你混到没人找你吃饭,没人喊你聚会,连电话也没几个,那庆祝了,你不是人缘变差,而是真正觉醒了

莫言:如果你混到没人找你吃饭,没人喊你聚会,连电话也没几个,那庆祝了,你不是人缘变差,而是真正觉醒了

品读时刻
2026-05-27 09:00:58
突发!西班牙MVP,还是回来了...

突发!西班牙MVP,还是回来了...

左右为篮
2026-07-13 00:09:53
中亚大国掀桌!普京没想到:又一个乌克兰诞生,靠中国武器壮胆?

中亚大国掀桌!普京没想到:又一个乌克兰诞生,靠中国武器壮胆?

你笑的好甜美
2026-07-11 23:24:16
“头伏不补,伏天受苦!”即将入伏,这3种“扶阳菜”抓紧安排上

“头伏不补,伏天受苦!”即将入伏,这3种“扶阳菜”抓紧安排上

江江食研社
2026-07-12 11:39:44
光模块龙头中际旭创:二季度业绩严重不及预期、故意压股价都是谣言

光模块龙头中际旭创:二季度业绩严重不及预期、故意压股价都是谣言

快科技
2026-07-13 08:29:03
2026-07-14 01:16:49
deephub incentive-icons
deephub
CV NLP和数据挖掘知识
2027文章数 1465关注度
往期回顾 全部

科技要闻

OpenAI与Anthropic互掐,最强AI也怕你不用

头条要闻

媒体:格雷厄姆猝死掀翻美国政坛 特朗普中期选举变天

头条要闻

媒体:格雷厄姆猝死掀翻美国政坛 特朗普中期选举变天

体育要闻

世界杯月赚1.7亿,51岁的他仍是顶流

娱乐要闻

具俊晔“深情人设”崩塌,遗产瓜开撕

财经要闻

SK海力士暴跌15%原因找到了?

汽车要闻

小米澎程N90 Max工信部信息曝光 全尺寸旗舰 露营版首秀

态度原创

健康
教育
时尚
亲子
本地

这几类人离中风最近!有你吗?

教育要闻

河南考生艾米被北电正式录取,专业成绩83.5分,全国第三名!

和你们这些“建模怪”拼了!

亲子要闻

今日份守规矩小达人上线,文明出行,从小做起,人类幼崽懂事瞬间太暖心

本地新闻

打的直达拉萨,一条视频拿下五十万奖金

无障碍浏览 进入关怀版