Marimo:下一代Python编程环境,颠覆传统Jupyter笔记本,自动化执行所有依赖代码块,告别繁琐手动操作

news2024/9/20 23:06:28

Marimo 是一个颠覆传统笔记本的全新编程环境,它以其反应式交互式可执行可共享等特性,为开发者们带来前所未有的编程体验。Marimo 确保您的笔记本代码、输出和程序状态始终保持一致。它解决了传统笔记本(如 Jupyter)的许多问题。

图片

反应式编程环境

Marimo的核心在于反应式编程,这意味着当你修改代码或与UI元素交互时,Marimo 会自动识别依赖关系,并只执行必要的代码块。这种智能机制可以有效避免传统笔记本中手动执行代码的繁琐,并确保代码、输出和程序状态始终保持一致。

图片

以下列举了Marimo反应式编程带来的优势:

  • • 自动运行依赖代码: 更改一个代码块,Marimo 会自动执行依赖它的所有代码块,无需手动执行,节省时间,减少错误。而Jupyter需要手动执行所有依赖代码块。

  • • 消除隐藏状态: 删除代码块时,Marimo 会自动清除该代码块所关联的变量,确保程序状态清晰,避免潜在的错误。

  • • 惰性执行配置: Marimo 支持将 runtime 配置为惰性模式,只标记需要重新执行的代码块,不会自动执行昂贵的代码块,从而保证程序状态的同时避免不必要的计算。

  • 图片

交互式用户界面

Marimo 允许你将 UI 元素(如滑块、下拉菜单、数据帧转换器等)绑定到 Python 代码,无需编写任何回调函数。当用户与 UI 元素交互时,Marimo 会自动重新执行关联的代码块,并实时更新输出结果。

图片

这种交互式编程体验带来以下优势:

  • • 直观的交互方式: 用户可以通过直观的 UI 元素控制代码执行,更易理解程序逻辑。

  • • 可视化数据探索: 通过 UI 元素动态调整参数,实时观察数据变化,更方便地进行数据探索和分析。

  • • 增强用户参与: 用户可以更直接地参与代码执行过程,提升用户体验。

  • 图片

可执行和可共享的笔记本

Marimo 将笔记本文件存储为纯 Python 代码,使其既可以作为脚本执行,也可以部署为交互式 Web 应用。这意味着你可以在本地开发和测试,然后将你的笔记本分享给他人,让他们在任何地方都可以体验你的交互式代码。

以下列举了Marimo的可执行性和可共享性带来的优势:

  • • 脚本执行: 你可以直接使用 Python 运行 Marimo 笔记本,方便进行自动化任务和批量处理。

  • • Web 应用部署: 你可以将 Marimo 笔记本部署为 Web 应用,方便用户在线访问和交互。

  • • 代码可移植性: Marimo 笔记本可以轻松移植到不同的平台,确保代码的可复用性。

  • • 数据驱动: Marimo 内置 SQL 支持,可以方便地处理各种数据源,例如数据帧、数据库、CSV 文件、Google 表格等等。

  • • Git 友好: Marimo 笔记本以 .py 文件的形式存储,方便使用 Git 进行版本控制和协作。

  • • 丰富的工具和功能: Marimo 内置了许多功能强大的工具,例如 GitHub Copilot、Ruff 代码格式化、HTML 导出、代码自动补全、VS Code 扩展、交互式数据帧查看器等等。

快速入门

安装 Marimo:

创建笔记本:

运行应用:

作为脚本执行:

从 Jupyter Notebook 转换:

探索教程:

总结

Marimo 是一款功能强大、易于使用的反应式编程环境,它将传统笔记本的局限性彻底打破,为开发者们提供了全新的编程体验。无论你是数据科学家、机器学习工程师还是软件开发人员,Marimo 都可以帮助你更高效、更便捷地进行代码创作、数据分析和应用开发。

项目地址:https://github.com/marimo-team/marimo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

流媒体服务器如何让WebRTC支持H.265,同时又能支持Web js硬解码、软解码(MSE硬解、WASM软解)

为了这一整套的解决方案,调研研发整整花费了差不多半年多的时间,需达成的目标: 流媒体服务器端不需要将H.265转码成H.264,就能让Chrome解码播放H.265; 注意:现在很多市面上的软硬件通过转码H.265成H.264的…

CSP-CCF 202312-1 仓库规划

一、问题描述 二、解答 思路&#xff1a;定义二维数组&#xff0c;比较不同行的相同列数 代码如下&#xff1a; #include<iostream> using namespace std; int main() {int n, m;cin >> n >> m;int a[1001][11] { 0 };for (int i 1; i < n; i){for (…

贪心 + 分层图bfs,newcoder 76652/B

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 https://ac.nowcoder.com/acm/contest/76652/B 二、解题报告 1、思路分析…

ELK基础搭建

一、认识ELK ELK是一套开源的日志分析系统&#xff0c;由elasticsearchlogstashKibana组成。 官网说明&#xff1a;https://www.elastic.co/cn/products 首先: 先一句话简单了解 E&#xff0c;L&#xff0c;K 这三个软件 elasticsearch: 分布式搜索引擎 logstash: 日志收集与…

领英(LinkedIn)公司主页创建方法分享

上次写了几篇关于领英注册的文章&#xff0c;也是有不少人加我&#xff0c;说有用。当然了也有还是不行的&#xff0c;还是不行的话一般都是比较复杂的问题&#xff0c;需要一些技术性的手段去解决。 然后最近也是有一些外贸朋友问公司主页注册创建的一些事情&#xff0c;今天的…

指挥调度平台——数字赋能,让出行更有温度

智慧交通指挥调度平台是基于信息技术和智能化系统的创新解决方案&#xff0c;旨在提升城市交通管理效率、改善交通流畅度、减少拥堵问题&#xff0c;以及增强城市交通运行的智能化水平。该平台整合了大数据分析、实时监测、智能优化算法等技术&#xff0c;为交通管理部门提供全…

虚拟现实技术的发展现状如何?

虚拟现实&#xff08;VR&#xff09;技术自2016年被广泛认为是元年之后&#xff0c;经历了快速增长和随后的调整期。目前&#xff0c;VR行业正处于快速发展期&#xff0c;技术不断进步&#xff0c;应用场景持续拓展。2024年VR技术发展现状概述&#xff1a; 1、行业发展阶段&am…

独家揭秘丨GreatSQL 的MDL锁策略升级对执行的影响

独家揭秘丨GreatSQL 的MDL锁策略升级对执行的影响 一、MDL锁策略介绍 GreatSQL 的MDL锁有个策略方法类MDL_lock_strategy&#xff0c;它根据对象的类型分为了scope类型和object类型&#xff0c;前者主要用于GLOBAL, COMMIT, TABLESPACE, BACKUP_LOCK and SCHEMA ,RESOURCE_GR…

基于tinymce实现多人在线实时协同文本编辑

基于tinymce实现多人在线实时协同文本编辑 前言 这可能是最后一次写tinymce相关的文章了&#xff0c;一方面tinymce的底层设计限制了很多功能的实现&#xff0c;另一方面tinymce本身越来越商业化&#xff0c;最新的7版本已经必须配置key&#xff0c;否则面临无法使用的问题。…

PPT如何添加水印?推荐两种方法!

在PPT演示文稿中添加水印&#xff0c;可以有效地保护版权或在背景上增加品牌标识。本文将介绍两种在PPT中添加水印的方法&#xff0c;帮助你轻松实现这一功能&#xff0c;一起来看看吧&#xff01; 方法一&#xff1a;在单张幻灯片上添加水印 1、选择目标幻灯片 打开PPT文件&…

防近视台灯有效果吗?学生家长们应该了解护眼台灯怎么选

在当前社会&#xff0c;近视的影响不容小视&#xff0c;除了对视觉健康的影响外&#xff0c;近视还可能对个人的心理健康产生负面影响。视力不佳可能导致自卑感和社会交往障碍&#xff0c;尤其是在儿童和青少年时期。保护视力健康要从小做起&#xff0c;家长们可以关注孩子的用…

【原创教程】电气电工07:网线的制作方法

电气电工经常会遇到做网线,我们做网线需要网线钳与测试仪。需要了解网线的两种接线标准。 我们来看一下网线钳的操作步骤: 这种压线钳也同时具有剥线、剪线功能。 用这种网线钳能制作RJ45网络线接头。RJ11电话线接头、4P电话线接头。适用于RJ45,RJ11型网线 做网线的时候我…

npm安装时一直在idealTree:npm: sill idealTree buildDeps卡住不动解决方法

npm安装xmysql时一直idealTree:npm: sill idealTree buildDeps卡住不动 问题解决&#xff0c;如下图所示 解决方法&#xff1a; 1、查看.npmrc位置&#xff0c;并去目录中删掉.npmrc文件 --在cmd&#xff08;DOS页面&#xff09;界面执行下述指令&#xff0c;可查看 .npmrc 文…

需要频繁查询的文档+索引命名规则

1.规则及样例 规则_S_00_R_240821.1_文档编号推荐命名规则V1.0.txt 模板_T_HV_C_248021.1_传感器及采集器IP分配表V1.0.xlsx 重要的需要频繁参考的文档纳入4段式文档编号体系&#xff1a;文档编号由四段组成&#xff1a; X_XX_X_XXXXXX.X T.........模板Template【其他还有&am…

自抗扰控制ADRC原理解析及案例应用

1. ADRC基本原理 1.1 ADRC的基本概念 自抗扰控制&#xff08;Active Disturbance Rejection Control&#xff0c;ADRC&#xff09;是一种先进的控制策略&#xff0c;由韩京清研究员于1998年提出。ADRC的核心思想是将系统内部和外部的不确定性因素视为总扰动&#xff0c;并通过…

AtCoder Beginner Contest 367 A~F

A.Shout Everyday&#xff08;枚举&#xff09; 题意&#xff1a; 在 A t C o d e r AtCoder AtCoder 王国&#xff0c;居民们每天都要在 A A A 点大声喊出他们对章鱼烧的热爱。 住在 A t C o d e r AtCoder AtCoder 王国的高桥每天 B B B 点睡觉&#xff0c; C C C 点…

day17:一文弄懂“无参装饰器”、“有参装饰器”和“叠加装饰器”

目录 一、无参装饰器1. 什么是装饰器2. 为何要用装饰器3. 如何用解决方案一&#xff1a;失败&#xff0c;优化见↓↓↓解决方案二&#xff1a;失败&#xff0c;优化见↓↓↓解决方案三&#xff1a;失败&#xff0c;优化见↓↓↓方案三的优化一&#xff1a;将index的参数写活了方…

重磅发布!天途多自由度无人机调试台

无人机调试、测试和试飞很容易受空域、场地、环境、失控炸机和操作失误等限制。天途TE55多自由度无人机整机调试台应运而生&#xff01; 突破空域限制 天途TE55多自由度无人机整机调试台&#xff0c;突破场地空域限制&#xff0c;不到0.7平米的空间&#xff0c;即可完成小型无人…

[数据集][目标检测]建筑工地楼层空洞检测数据集VOC+YOLO格式2588张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2588 标注数量(xml文件个数)&#xff1a;2588 标注数量(txt文件个数)&#xff1a;2588 标注…

基于vue框架的办公用品管理系统i52wc(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;部门,员工,办公用品,入库记录,出库记录,申领信息 开题报告内容 基于Vue框架的办公用品管理系统 开题报告 一、引言 随着企业规模的扩大和日常运营的复杂化&#xff0c;办公用品的管理成为了一个不容忽视的重要环节。传统的办公用品管…