marimo,Python notebook 的未来

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

marimo,号称是下一代 Jupyter Notebook,是 Python notebook 的未来。

a2f5741f61c34e9c2b507c8d9e9391df.png

实际体验完后,初步感觉确实还是不错的,非常有潜力。项目大概 9 个月前在 Github 上发布,目前收获了 4k 星标左右。

ff208037d08dec12b4bc4beb0f27daab.png

本文将快速和大家介绍一些它的一些主要特色和使用体验。

marimo 是什么?

根据官网介绍,marimo 是响应式的 Python notebook,具有可重现性、git 友好性,并可作为脚本或应用程序部署。它解决了传统 notebook 如 Jupyter 中隐藏状态(hidden state)的挑战, 该问题可能导致不可预料的结果并阻碍可复用性。

marimo 的开发者曾在博客里写道:

我们选择开发 marimo 是因为我们相信 Python 社区应该有一个更好的编程环境来进行研究和交流;尝试代码并分享;学习计算科学并教授它。我们已经看到很多研究都是在 Jupyter 笔记本上开始的(我自己的大部分都是这样),但都未能重现;许多有前景的原型从未实现;以及许多未能吸引学生的教程。

主要特性

1. 输出自动更新

运行一个单元格后,marimo 就会自动运行受影响的单元格,从而消除了管理笔记本状态这一容易出错的繁琐工作。

marimo 的响应式 UI(如数据帧图形 GUI 和绘图)让数据处理工作变得更加快速、直观,令人耳目一新。

c483b6670d3d207b00ab80b10012bd85.gif

2. Python 优先的设计

marimo notebook 是纯 Python 格式,存储为 .py 文件。

可使用 git 进行版本控制,以 Python 脚本的形式运行,支持使用自己喜欢的工具进行校验或格式化。

3. 默认可复现

你总能复现合作者的成果。notebook 以确定的顺序执行,没有隐藏状态。如果删除一个单元格,marimo 就会删除其变量,同时更新受影响的单元格。

4. 注重开发者体验

marimo 编辑器支持 GitHub Copilot、自动补全、悬停提示、vim 键绑定、代码格式化、调试面板和大量热键。

5. 非常便于协作

由于 notebook 以.py 文件的形式存储,非常便利于通过 git 进行写作,此外,marimo 也支持将 notebook 作为只读的 web app 部署到线上。

如何使用

首先,通过 pip 安装:

pip install marimo  # or conda install -c conda-forge marimo
marimo tutorial intro

也可以通过官网提供的线上 playground 直接体验:https://marimo.app/。

下面是一些常用场景和对应命令:

创建或编辑笔记本

marimo edit

以 web app 形式运行 notebook,隐藏 Python 代码且置为不可编辑:

marimo run your_notebook.py

466f272c691d0a63ead3628ced942983.gif

在命令行中以脚本形式执行笔记本:

python your_notebook.py

通过 CLI 自动将 Jupyter notebook 转换为 marimo notebook:

marimo convert your_notebook.ipynb > your_notebook.py

小结

本文中,我们介绍了一款全新的 Python notebook,marimo,详细说明了它的主要特性和使用方式。作为 Jupyter 的替代方案,个人认为是非常潜力的。项目诞生还不到一年,使用人数目前可能还不多,但是还是非常建议大家尝试尝试。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

969c3cfc882eeb9495496a6a1f2b7646.jpeg

长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:

2f9a8903326ab81f85824b82b82fbe7a.png

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

86430cd4e9f6bc0118268bd184193541.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

长文处理更高效:一键章节拆分,批量操作轻松搞定,飞速提升工作效率!

在当今信息爆炸的时代,我们时常需要处理大量的文本内容。无论是阅读长篇小说、整理专业资料还是编辑大型文档,TXT文本文件的普遍性不言而喻。然而,当TXT文本内容过于庞大时,阅读、编辑和管理都变得异常繁琐。此时,一款…

echarts-树图、关系图、桑基图、日历图

树图 树图主要用来表达关系结构。 树图的端点也收symbol的调节 树图的特有属性: 树图的方向: layout、orient子节点收起展开:initialTreeDepth、expandAndCollapse叶子节点设置: leaves操作设置:roam线条&#xff1a…

eNSP学习——OSPF单区域配置

目录 相关命令 实验背景 实验目的 实验步骤 实验拓扑 实验编址 实验步骤 1、基础配置 2、部署单区域OSPF网络 3、检查OSPF单区域的配置结果 OSPF——开放式最短路径优先 基于链路状态的协议,具有收敛快、路由无环、扩展性好等优点; 相关命令 […

电信光猫的USB存储对外网开放访问

前提条件当然是要有公网IP地址了,没有的话去找电信索要,然后可以使用动态域名正常访问。 我的电信光猫发现共享访问速度还可以,会有31M/s左右的写入速度 但是有一个不方便的是,无法从外网提供访问,SMB协议所用的445端…

军队仓库管理系统|DW-S301系统特点

部队仓库管理系统DW-S301系统通过数据采集、互联网和物联网技术,实现数字化智能管控,以提高军用物资的仓储准确率和流转率,缩短周转时间,降低库存成本,也有助于消除生产过程中的不确定性。 系统功能:通过部…

WebService的wsdl详解

webservice服务的wsdl内容详解,以及如何根据其内容编写调用代码 wsdl示例 展示一个webservice的wsdl,及调用这个接口的Axis客户端 wsdl This XML file does not appear to have any style information associated with it. The document tree is shown…

DSVPN综合实验

DSVPN综合实验 一.实验拓扑 二.实验要求 1,R5为ISP,,只能进行IP地址配置;其所有地址均配为公有IP地址 2,R1和R5间使用ppp的PAP认证,R5为主认证方; R2于R5之间使用ppp的chap认证,R5为主认证方,…

python web自动化(Allure报告)

Allure详细安装请看之前的博客 1.Allure配置与⼊⻔ 运⾏⽤例,⽣成allure报告 pip install allure-pytest -i https://mirrors.aliyun.com/pypi/simple/ 运⾏⽤例,⽣成allure报告 # main.py import os import pytest if __name__ __m…

Softing工业推出新品edgeGate:一款用于工业边缘和云应用的硬件网关

2024年4月17日(哈尔),Softing工业自动化在2024年汉诺威工业博览会上首次展示了新品edgeGate。该产品是一个无需维护的硬件物联网网关解决方案,可将生产数据从PLC和数控机床控制器传输至工业边缘及物联网云平台。 (edge…

plt多子图设置

import matplotlib.pyplot as plt# 使用 subplots 函数创建一个 2x3 的子图网格 fig, axs plt.subplots(nrows2, ncols3, figsize(16, 10)) # 调整 figsize 来改变图像大小# 遍历每个子图,并绘制一些内容(这里只是简单的示例) for ax in ax…

【Python搞定车载自动化测试】——Python实现CAN总线Bootloader刷写(含Python源码)

系列文章目录 【Python搞定车载自动化测试】系列文章目录汇总 文章目录 系列文章目录💯💯💯 前言💯💯💯一、环境搭建1.软件环境2.硬件环境 二、目录结构三、源码展示1.诊断基础函数方法2.诊断业务函数方法…

探索Python技巧:零基础学习缩进与逻辑关系

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、理解Python的缩进语法 缩进规则详解 二、缩进在逻辑关系中的应用 逻辑块示例 三、实…

【LSTM】LSTM cell的门结构学习笔记

文章目录 1. LSTM cell2. 门结构3. 门的公式4. 门的参数5. 重点关系厘清 1. LSTM cell 如文章 LSTM网络与参数学习笔记 中介绍, LSTM cell指的是一个包含隐藏层所有神经元的结构.但是LSTM门控单元的公式如何理解、门和LSTM cell神经元如何对应、门函数的参数维度、不同时间步不…

工作中的相关问题

最近属于各方面繁杂事务较多,所以相关问题也较为分散,没有细致联系,仅为一个自我小总结,序号并无相关学习顺序,未全的点后续补充 参考链接:5分钟带你深入浅出搞懂 Nginx | 二哥的Java进阶之路 (javabetter…

【NumPy】NumPy实战入门:线性代数(dot、linalg)与随机数(numpy.random)详解

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

MySQL库/表/数据的操作

文章目录 1.数据库操作1.1 创建、删除、查看和修改1.2 编码格式1.3 备份和恢复 2.表的操作2.1 创建表2.2 存储引擎2.3 查看表、修改表、删除表 3.数据类型3.1整数类型3.2字节类型(bit)3.3浮点类型(bit)3.4 decimal3.5 字符串类型3.6 日期和时间类型3.7 enum和set关于如何查找想…

多线程事务

一、业务场景 我们在工作中经常会到往数据库里插入大量数据的工作,但是既需要保证数据的一致性,又要保证程序执行的效率。因此需要在多线程中使用事务,这样既可以保证数据的一致性,又能保证程序的执行效率。但是spring自带的Trans…

【一个糟糕的词:省流】

今日思考,博主分享📝,原文如下, 我最近听到了一个特别糟糕的词叫省流。我甚至认为这个词可以用来衡量一个人的智商啊,我们可以把一个知识简单的分成三部分问题,答案思维方式就是这个答案是怎么推导出来的啊…

【FPGA】VGA显示文字、彩条、图片——基于DE2-115

文章目录 前言一、VGA概述1.1 简述1.2 管脚定义1.3 VGA显示原理1.4 VGA时序标准1.5 VGA 显示模式及相关参数 二、VGA显示自定义的汉字字符2.1 点阵汉字生成2.2 生成BMP文件2.3 生成txt文件2.4 实现效果 三、VGA显示条纹3.1 实现流程3.2 实现效果 四、VGA输出一幅彩色图像4.1 bm…

代码随想录——找树左下角的值(Leetcode513)

题目链接 层序遍历 思路:使用层序遍历,记录每一行 i 0 的元素,就可以找到树左下角的值 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}*…