📙

ぐちゃぐちゃなノートブックからはおさらば、VSCodeのGather Extensionがすごい

2021/05/19に公開

Pythonのデータ処理のコードをなるべく型安全に書く方法を調べていたら、かなり便利そうなVSCodeの拡張機能を発見したのでその紹介記事です。

その名も Gather です。

どんなものか

VSCodeのJupyter Notebook機能を更に拡張する拡張機能で、ノートブック上に散らばった必要なコードだけを抽出して新しいノートブックとして出力するものだそうです。

インストールはこちらから

デモ

Image from Gyazo

上記のように、2次関数を可視化するノートを作ったけど、いつも癖でpandasまでインポートしちゃったという場合でも、コードを読み取って必要な部分のみを新しいノートブックとして出力してくれている事がわかります。
また、zとして3次関数用の変数も作ったけどやっぱり使わなかったという場合もzを削除してくれています。

どんな時に便利なのか?

Pythonで、データ分析系のコードを書くときってめちゃくちゃ試行錯誤を繰り返すと思います。

  • とりあえず、相関係数を見てみて、どうするか決めて、やっぱりこの列はいらない。
  • そうだ、この特徴量を追加してみよう。
  • このグラフ、見た目が気に入らないから、書き直そう。(けど前の結果も残しておきたい。)

...などぐちゃぐちゃになる理由を挙げ始めるときりがないです。

そして、いつの間にかノートブックは以下のような状態に。。。

  • もう使っていないライブラリがいっぱいインポートされている。
  • 全部実行し直そうにも、無駄なコードが間に挟まりすぎていてめっちゃ時間がかかる。
  • いつの間にか変数が被っていて、どの変数に何が入っているのか忘れた。
  • ノートブックのセルの順番がぐちゃぐちゃ。全部実行してもちゃんと動くか怪しい。

...などなど

このような問題を全てではないにしろ解決してくれるのが Gather です。

どうやって使うのか

こうやって使えば便利そうだなと思ったGatherのユースケースを紹介します。
(見つけたばかりの勢いで書いているので、まだ十分に試しきれていません)

  1. モデリングやEDAなどの実験として、ノートブックで好きなだけコードを書く。
  2. 一度カーネルを再起動して、必要なセルだけ実行し直す。
  3. アウトプットに満足であれば、Gatherのiconをクリックする。

以上の3手順を実行すると、必要なセルだけで構成された新しいノートブックが作成されます。
しかも、セル内のコードは静的解析されるそうで、使われていないモジュールや変数の部分は自動的に消去されています。
すごい!!!!

Gatherを使えば、とりあえずいつも使うライブラリをインポートしておいて、適当に実験しても、超簡単に共有用の清書ノートブックを作成することができます。

参考

Gather - Visual Studio Marketplace
microsoft/vscode-gather: Gather for the Python Extension

Discussion