[WIP] Spyderの布教② ~Jupyter notebookに負けないSpyderのメリット~

はじめに

不遇の子、「Spyder」

前回は、導入についての記事を作りました

Spyderの布教① ~データ分析実務で使うためのSpyder導入~
Spyderの初期設定についての記事です。日本語化、レイアウトの変更(Matlabライクなレイアウト)、プロット表示の変更方法(外部ウインドウで開く)について記載しています。

今回は、Spyderのメリットについて語りたいと思います

特に競合するJupyter notebookと比較してみたいですね

本当のSpyderの位置づけ

使用用途と競合

Spyderは一応統合開発環境のくくりに入りますが、
実はそれほど「開発用」の環境だとは考えていません

例えば、VSCodeなどとは用途が明確に異なります
競合相手は「Jupyter notebook」だと思っています

実際、私も実務でソフトウェア開発や、ディープラーニングのモデル開発など、
多くのモジュールにまたがったそこそこ規模の大きい「開発行為」を行う場合、
VSCodeを使っています
Spyderはそのような開発に対し、あまりにも非力だからです

主にSpyderが活躍するのは、
「データを確認しながらコードを書く」または
「コードを書きながらデータを分析する」用途のときだと思っています
私の場合は実験データの分析小規模なツール開発用に使っていることが多いです

Spyderのメリット

まず、Spyderのメリットを挙げたいと思います

  1. 「# %%」でコードブロックを作ることができる
    (Jupyter notebookのようにブロックごとにコードを実行できる)
  2. 1行ずつコードを実行できる
  3. 選択範囲だけコードを実行できる
  4. 変数エクスプローラがあり、デフォルトでヒートマップにしてくれる
  5. .pyの形式で扱えるので管理が楽
  6. デバッグが可能である(Jupyter notebookとの比較)

1. 「# %%」でコードブロックを作ることができる

Spyderの大きな特徴が、「# %%」を使ったコードブロックの作成です
コードブロックを作成することで、コードの一部だけを実行することができます

ただし、最近はVSCodeも同様の方法でコードブロックを作ることができるので、
Spyder「だけの」メリットではなくなりました
(VSCodeでも私はよく「# %%」を使います)

コードブロックにしたときの使い勝手はJupyter notebookに似ていますが、
もともと長いコードをこの「# %%」で自由に後から区切ることができるのも便利な点です

2. 1行ずつコードを実行できる

これはVSCodeには(今のところ)ないSpyderのメリットです

1行ずつコードを実行することができるので、
デバッグを行いながらコードを書いていくことができます
変数をプロットや画像として表示しながら可視化しながらコードを書くことができるので、データ分析には非常に向いているといえます

3. 選択した範囲だけコードを実行できる

これも1と2に似た機能ですが、選択した範囲だけコードを実行できます

「# %%」でブロックに分けて実行したり、1行ずつ実行するのが面倒な場合、この方法を取ることがあります

4. 変数エクスプローラがあり、デフォルトでヒートマップにしてくれる

これは非常に気に入っている機能です
データ分析をすると、データそのものをよく眺めることがあります
もちろんexcelなどで確認してもいいのですが、
たとえばpandasを使って抽出したデータを都度確認したいとき、
クリックすればヒートマップで表示することができるので非常に便利です
異常値などの確認も視覚的でわかりやすいですしね

5. .py形式で扱える

これはJupyter Notebookと比較した有利な点です
.py形式でコードを扱えるので、当然gitでの管理も普通に行えます

Spyderのデメリット

  • UIがいけてない、あまり洗練されてない
  • Jupyter Notebookのように実行した結果が残らない

くらいでしょうか。。UIは正直うーんと思うこともありますが…

まとめ

ということで、Spyderのメリットをまとめてみました
個人的には、特に変数エクスプローラが気に入っています。
VSCodeも変数エクスプローラがありますが、
ヒートマップの機能は無いので比較すると見にくいんですよね。。

もちろん得手不得手はありますが、
ぜひSpyderを使う人がもう少し増えると嬉しいなと思うところです

きゅうこん

きゅうこん

元メカ設計者、現なんちゃってAIエンジニア。実験データを分析しているうちにプログラミングとAIのスキルを習得(?)職業何ですか?と聞かれたときに何と答えるべきかを考える日々。 Qiita: https://qiita.com/kamome885

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