はじめに
不遇の子、「Spyder」
前回は、導入についての記事を作りました
今回は、Spyderのメリットについて語りたいと思います
特に競合するJupyter notebookと比較してみたいですね
本当のSpyderの位置づけ
使用用途と競合
Spyderは一応統合開発環境のくくりに入りますが、
実はそれほど「開発用」の環境だとは考えていません
例えば、VSCodeなどとは用途が明確に異なります
競合相手は「Jupyter notebook」だと思っています
実際、私も実務でソフトウェア開発や、ディープラーニングのモデル開発など、
多くのモジュールにまたがったそこそこ規模の大きい「開発行為」を行う場合、
VSCodeを使っています
Spyderはそのような開発に対し、あまりにも非力だからです
主にSpyderが活躍するのは、
「データを確認しながらコードを書く」または
「コードを書きながらデータを分析する」用途のときだと思っています
私の場合は実験データの分析や小規模なツール開発用に使っていることが多いです
Spyderのメリット
まず、Spyderのメリットを挙げたいと思います
- 「# %%」でコードブロックを作ることができる
(Jupyter notebookのようにブロックごとにコードを実行できる) - 1行ずつコードを実行できる
- 選択範囲だけコードを実行できる
- 変数エクスプローラがあり、デフォルトでヒートマップにしてくれる
- .pyの形式で扱えるので管理が楽
- デバッグが可能である(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を使う人がもう少し増えると嬉しいなと思うところです