搜索
首页后端开发Python教程Jupyter 笔记本就像电子表格。两者都学。

Jupyter Notebooks Are Like Spreadsheets. Learn Both.

电子表格是“商业软件的暗物质”:它们无处不在,它们是隐形的,并且它们将所有东西结合在一起。商业和财务在电子表格上运行;没有其他软件工具能够让这么多人为这么多不同的问题构建解决方案。在这种情况下,您必须将“Jupyter 是新 Excel”的任何断言理解为故意耸人听闻。

但是,Jupyter 笔记本确实与 Excel 电子表格有一些关键的相似之处。笔记本在科学和统计计算中无处不在,就像电子表格在业务运营和前台财务中占据主导地位一样。在这篇文章中,我们将探讨这两种工具之间的一些哲学和实践异同,试图解释为什么两者都有如此热情的粉丝和批评者。

相似之处:优点

  • 从表面上看,Jupyter 笔记本和 Excel 电子表格都使用“单元格”作为将分析分解为离散步骤的视觉隐喻。两种格式的单元格都包含代码并显示结果。
  • 两者都是为交互式、迭代、探索性分析而设计,将计算与数据可视化相结合。
  • 两者都旨在为初学者提供浅层学习曲线。
  • 两者都被设计为独立且易于共享。 Google Colab 和 JupyterHub 等在线环境抽象化了通常很复杂的 Python 设置过程。
  • 两人都在各自领域的高等教育领域拥有强大的影响力。商学院几乎普遍使用 Excel 教授财务建模,STEM 部门通常使用 Jupyter 笔记本教授数据分析1。新毕业生将他们对这些工具的熟悉带入工作场所。

相似之处:缺点

Excel电子表格和Jupyter笔记本都被软件工程师批评为不是“真正的软件”。除了两个工件都需要另一个程序来运行这一明显的限制之外,它们还使得遵守软件工程最佳实践变得困难:

  • 作为大型的整体文件,它们很难使用 git 等开发工具进行版本控制。 Office OpenXML 文档是压缩的,这会“扰乱”文件内容,以便 git 无法跟踪底层数据的更改。 Jupyter 笔记本实际上只是大型 JSON 文件,但单元输出和执行计数更改引入了多余的增量2.
  • Excel 电子表格和 Jupyter 笔记本都很难生产,尽管这两种工具在实践中确实在生产中使用。 Excel 和 Jupyter 是繁重的执行环境,它们引入了自己的依赖项,对于习惯编写独立脚本的工程师来说似乎很浪费。
  • 两者都容易出错并且难以测试。事实上,这两个平台都迎合了编写代码经验较少的用户,这让他们以创建充满错误的解决方案而闻名。事实上,如果没有单元测试或质量控制文化等工具,电子表格和笔记本中的错误更有可能进入生产。

差异

  • Excel 让非程序员更容易理解数据在单元格之间的流动方式。
    • Excel 的网格提供了一种通过单元格坐标引用数据的自然方式,而 Jupyter 依赖命名变量,迫使用户面对命名变量很难的现实。
    • 在 Excel 中检查多步计算的中间结果更容易,因为单元格就在您的前面。 Jupyter Notebook 中的打印语句需要更多的精力来设置和执行。
  • Excel 是独立的; Jupyter的价值在于Python的包生态系统。
    • Python 对外部库的依赖使得 IT 部门更容易限制 Jupyter 的使用。
    • 本地安装 Jupyter 和通过网络运行笔记本都比打开 Excel 需要更多的设置。
    • 大多数 Excel 电子表格仅使用 Excel 附带的功能,这意味着业务联系人只需打开您的模型、修改它并运行它。笔记本很难在组织外部共享,甚至在组织内部共享,因为它们与特定的 Python 环境紧密相连,而且 Python 环境很难设置。
  • Excel 可以充当“穷人的数据库”,跨多个工作表存储表格数据,并通过数据透视表提供类似 OLAP 的功能。 Jupyter 笔记本通常从 API 或共享文件位置加载数据,这是它们不那么独立的另一个原因。
  • 在 Excel 中“捏造数字”比在 Jupyter 中更容易。电子表格实时更新,无需重新运行代码或设置交互式小部件。一次性更改更容易进行,这在速度至关重要的情况下很重要。
  • 在 Jupyter 中使用代码是不可避免的,但 Excel 可以完全通过 GUI 来使用:甚至有菜单可以在单元格公式中选择函数。
    • Jupyter 更加开放和灵活,但需要更多的技术知识才能有效使用。
  • Jupyter 比 Excel 更注重叙事和讲故事。
    • Jupyter 笔记本专为文学编程而设计,代码和散文散布在其中以创建叙事流程。
    • Excel 中的报告和演示通常依赖于复制/粘贴或与 PowerPoint 的集成。

影响

微软将Python集成到Excel中的努力不会显着削弱Jupyter在科学和技术计算领域的主导地位。电子表格缺乏自然的叙述结构,这使得它们不太适合教育和可重复的研究。而且,“开放科学”社区永远不会采用美国科技巨头打造的闭源工具。

将会出现工具和“最佳实践”来减轻 Jupyter 笔记本的操作缺点3,就像电子表格一样。大多数前台用户会忽略此类准则4,从而与 IT 部门造成持续的紧张关系。在目睹了 Excel 的发展历程后,许多 IT 部门认为支持 Jupyter 就像打开充满安全漏洞和维护难题的潘多拉魔盒。

这两个平台都将在可预见的未来生存。两者都不会取代对方,因为它们的目标用户群具有根本不同的技能。 从事定量建模和业务决策交叉领域工作的人员将继续需要熟悉这两种工具。

结论

使用最适合您解决问题的组织文化的工具。在某些情况下,技术要求会迫使您使用一种工具而不是另一种工具,就像只允许您使用一种工具或另一种工具的组织。如果您在 Excel 主导的领域工作并且确实需要 Python 的功能,根据我的经验,从 Python 代码读取和写入 Excel 电子表格比让 Excel 用户打开 Jupyter 笔记本更容易。

全世界的软件工程师和 IT 部门将继续看不起 Jupyter 笔记本,就像他们几十年来对待电子表格一样。事实上,MBA 类型不使用 Jupyter 笔记本,这使得 IT 部门可以更轻松地对其使用实施严格的限制。讽刺的是,许多前台用户可能只有在 Microsoft 将 Python 集成到 Excel 中后才能访问它。


  1. 一些坚持者仍然使用 MATLAB、R、SPSS 或 SAS,但随着时间的推移,高昂的许可费用将继续推动用户转向免费和开源的替代方案。占领教育市场是 MathWorks 等公司商业战略的关键部分,但它们不太可能永远坚持下去。 ↩

  2. 像 nbdime 这样的工具可以帮助对 Jupyter Notebook 进行版本控制,但使用它们又增加了一层复杂性。 ↩

  3. papermill 等工具旨在简化生产环境中笔记本的运行。云提供商还支持在生产中创建涉及 Jupyter 笔记本的管道。 ↩

  4. 有多少人听说过构建电子表格的 FAST 标准? ↩

以上是Jupyter 笔记本就像电子表格。两者都学。的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python中的合并列表:选择正确的方法Python中的合并列表:选择正确的方法May 14, 2025 am 12:11 AM

Tomergelistsinpython,YouCanusethe操作员,estextMethod,ListComprehension,Oritertools

如何在Python 3中加入两个列表?如何在Python 3中加入两个列表?May 14, 2025 am 12:09 AM

在Python3中,可以通过多种方法连接两个列表:1)使用 运算符,适用于小列表,但对大列表效率低;2)使用extend方法,适用于大列表,内存效率高,但会修改原列表;3)使用*运算符,适用于合并多个列表,不修改原列表;4)使用itertools.chain,适用于大数据集,内存效率高。

Python串联列表字符串Python串联列表字符串May 14, 2025 am 12:08 AM

使用join()方法是Python中从列表连接字符串最有效的方法。1)使用join()方法高效且易读。2)循环使用 运算符对大列表效率低。3)列表推导式与join()结合适用于需要转换的场景。4)reduce()方法适用于其他类型归约,但对字符串连接效率低。完整句子结束。

Python执行,那是什么?Python执行,那是什么?May 14, 2025 am 12:06 AM

pythonexecutionistheprocessoftransformingpypythoncodeintoExecutablestructions.1)InternterPreterReadSthecode,ConvertingTingitIntObyTecode,whepythonvirtualmachine(pvm)theglobalinterpreterpreterpreterpreterlock(gil)the thepythonvirtualmachine(pvm)

Python:关键功能是什么Python:关键功能是什么May 14, 2025 am 12:02 AM

Python的关键特性包括:1.语法简洁易懂,适合初学者;2.动态类型系统,提高开发速度;3.丰富的标准库,支持多种任务;4.强大的社区和生态系统,提供广泛支持;5.解释性,适合脚本和快速原型开发;6.多范式支持,适用于各种编程风格。

Python:编译器还是解释器?Python:编译器还是解释器?May 13, 2025 am 12:10 AM

Python是解释型语言,但也包含编译过程。1)Python代码先编译成字节码。2)字节码由Python虚拟机解释执行。3)这种混合机制使Python既灵活又高效,但执行速度不如完全编译型语言。

python用于循环与循环时:何时使用哪个?python用于循环与循环时:何时使用哪个?May 13, 2025 am 12:07 AM

useeAforloopWheniteratingOveraseQuenceOrforAspecificnumberoftimes; useAwhiLeLoopWhenconTinuingUntilAcIntiment.ForloopSareIdeAlforkNownsences,而WhileLeleLeleLeleLoopSituationSituationSituationsItuationSuationSituationswithUndEtermentersitations。

Python循环:最常见的错误Python循环:最常见的错误May 13, 2025 am 12:07 AM

pythonloopscanleadtoerrorslikeinfiniteloops,modifyingListsDuringteritation,逐个偏置,零indexingissues,andnestedloopineflinefficiencies

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具