【次世代ノートブック】Jupyterはもう時代遅れ?Pythonの新しい常識「marimo」を探求したら未来だった

KEIの道具箱

やあ、みんな!ケイだよ。 僕のデジタル探求ノートへようこそ!

Pythonでデータを分析したり、ちょっとしたプログラムを試したりする時、多くの人が「Jupyter Notebook」や「JupyterLab」を使っているよね。僕もその一人。セルを一つずつ実行しながら、試行錯誤できるのがすごく便利なんだ。

でも、時々こう思うことない?

「あれ、このセルってさっき実行したっけ…?」 「変数の値を変えたから、上から全部実行し直さないと…」

セルの実行順序がぐちゃぐちゃになって、意図しない結果になってしまう「隠れたステート(状態)」問題。これはJupyterを探求する僕たちの、長年の悩みだったんだ

でもね、そんな悩みを根本から解決してくれるかもしれない、すごいツールを見つけちゃったんだ。その名も「marimo」。

今日は、この次世代Pythonノートブック「marimo」が、僕たちの探求をどう変えてくれるのか、その秘めたる力に迫ってみるよ!


marimoって、いったい何者?

marimoは、MIT発のオープンソースで開発されている、新しいPython用のノートブック環境なんだ 。名前の由来は、日本の「毬藻(まりも)」から来ているみたい。なんだか親近感が湧くよね。

marimoの最大の特徴は、**「リアクティブ(反応的)」**であること

これだけ聞いてもピンとこないかもしれないけど、Jupyterの常識を覆す、とんでもないコンセプトなんだ。

Jupyterと何が違う?marimoの3つの革命的ポイント

僕が実際にmarimoを触ってみて、「これは未来だ!」と感じたポイントを3つに絞って紹介するね。

1. 魔法のような「リアクティブ(反応性)」

これがmarimoの心臓部だよ。 Jupyterでは、あるセル(例えば a = 10)の値を変更したら、その変数 a を使っている他のセルを、手動で実行し直す必要があったよね。

でもmarimoは違う。

一つのセルのコードを変更すると、その変更に影響される全てのセルが、自動で再実行されるんだ

それはまるで、Excelみたいなスプレッドシートのよう。セルの値を変えれば、そのセルを参照している計算式の結果が瞬時に変わるよね?あれがPythonのコードで起こるんだ。

これにより、「実行順序を間違えてバグが起きる」という問題が、原理的に発生しなくなる 。常にコードと実行結果が一致するから、安心して探求に集中できるんだ。

2. Gitフレンドリーで、探求の記録が綺麗に残る

僕が「これは嬉しい!」と思ったもう一つの特徴が、ノートブックが

.py“形式、つまり純粋なPythonコードとして保存されること 。

Jupyterの”.ipynb形式”は、実はJSONという形式で、コード以外にも実行結果やたくさんの情報が含まれているんだ。だから、Gitでバージョン管理をしようとすると、どこがどう変わったのかすごく分かりにくかった 。

でもmarimoなら、変更したのはコードの部分だけ、とはっきりわかる。これなら、僕の「探求ノート」の変遷も綺麗に残せるし、チームで開発するときも、スムーズに協力できそうだね

3. ノートブックがそのままWebアプリになる

探求の成果を誰かに見せたい時、Jupyterだと.ipynbファイルを送ったり、静的なHTMLに変換したりする必要があった。

でもmarimoは、

作成したノートブックを、そのままインタラクティブなWebアプリケーションとして実行できるんだ

実行ボタンなどを非表示にして、UI部品とアウトプットだけを見せるモードにすれば、もうそれは立派なWebアプリ。データ分析のダッシュボードや、簡単なシミュレーターをサクッと作って、すぐに同僚や友人に共有できる。これは本当に革命的だよ。

marimoでデータ分析を探求してみよう!

marimoがデータ分析コンペティションのような、実際の探求の場でどう役立つのか、僕も試してみたよ。

データフレームを、まるでExcelのように探る

データ分析の第一歩は、データをじっくり観察することだよね。marimoには

mo.ui.dataframe()という機能があって、これを使うと、まるでExcelみたいに対話的にデータフレームを操作できるんだ

カラムを選んで表示を絞ったり、条件でフィルタリングしたり、好きな順番で並べ替えたり…といった操作が、コードを書かずにGUIでできてしまう 。そして、その操作の結果はちゃんとPythonコードとして記録されるから、分析の再現性もバッチリなんだ

グラフを動かして、隠れた関係性を発見する

データの可視化も、すごく柔軟なんだ。 例えば、ドロップダウンメニューを作って、X軸とY軸に表示するデータを自由に切り替えられるインタラクティブなグラフが作れる

「この特徴量と、あの特徴量の関係はどうなってるんだろう?」と思った時に、リアルタイムでグラフを変化させながら、色々な角度からデータを眺めることができる。静的なグラフを何枚も作るより、ずっと効率的に新しい発見ができそうだよね。

Altairライブラリとの連携で、さらに深い探求へ

特にすごいのが、「Altair」という可視化ライブラリとの連携。これを使うと、複数のグラフを連動させた、さらに高度な分析ができるようになるんだ

例えば、商品のカテゴリ別の売上を示す棒グラフがあったとして、特定のカテゴリの棒をクリックする。すると、そのカテゴリのデータだけがハイライトされたり、下の表にそのカテゴリの詳細データだけが表示されたりすることもできるんだ。

こういう対話的な分析ができると、「エラーが多いのは、どのカテゴリの、どんな特徴を持ったデータだろう?」といった、より深いレベルでのエラー分析が直感的に進められそうだね

まだまだある!marimoの便利な道具たち

LLMを使ったAIコーディング支援

marimoは、GeminiやGPTといったLLM(大規模言語モデル)と連携して、AIにコードを書いてもらうこともできるんだ 。特に、Google AI StudioのAPIキーを使えば、Geminiを無料で利用できるのは嬉しいポイントだよね 。まだ少しコツはいるみたいだけど、アイデア出しの壁打ち相手として、すごく頼りになりそう!

使い慣れたVSCodeで探求できる

公式のVSCode拡張機能も提供されていて、これを使えば、僕たちが普段使っているVSCodeの画面でmarimoノートブックを編集できるんだ 。左側でコードを書きながら、右側で実行結果をリアルタイムに確認する、なんていう効率的な探求スタイルも可能になるね

結論:探求の新しい「相棒」ができた!

marimoは、Jupyterを完全に置き換えるものではないかもしれない。でも、そのリアクティブな思想は、僕たちのPythonでの探求スタイルを、より安全で、よりクリエイティブなものへと進化させてくれる可能性を秘めていると、僕は感じたよ。

「実行順序」という見えない敵と戦う時間を減らして、僕たちはもっと「何を創り出すか」という本質的な探求に時間を使えるようになる 。

marimoは、僕たちのデジタル探求における、新しい強力な「相棒」になってくれそうだ。 みんなもぜひ、公式のオンラインチュートリアルで、この未来のノートブックを試してみてね!

それじゃあ、また次の探求で! ケイより。

コメント

タイトルとURLをコピーしました