Spyderの使い方

前回紹介した分析用のIDEでSpyderというものがあります。このページではSpyderの入門的な使い方について解説します。(もしJupyterLab等、既に手慣れたPythonの編集環境がある場合はそちらを利用していただいても構いません。)

既にAnacondaがインストールされていることを前提とします。Spyder単体のインストールも可能なのですが、推奨されていません。

Spyderとは

Spyderは科学者、エンジニア、データアナリストによって設計されたPython分析向けのIDEの一種で、Anacondaと同梱されているNumPy、SciPy、Pandas、IPython、Matplotlibといったの科学技術計算系パッケージとの統合が図られています。

比較的機能が絞られているものの必要な機能は一通り揃っているため、VSCodeやAtomのようにプラグインを組み合わせる必要がなく、学習コストが低いと思います。JupyterLabと異なりサーバー起動不要で動くので非エンジニアでも簡単に使えるのではないでしょうか。また、大体の使い方がわかればJupyterLabへの乗り換えも検討してみてください。おおよその機能は似ているため、すんなりと使いこなせるようになるはずです。

また、RStudioとよく似ているので、RStudioに馴染みがある方は乗り換えがスムーズだと思います。

Spyderの起動

コマンドライン上でspyderと入力すると起動します。比較的重いので起動まで少し時間がかかるかもしれません。

1つの画面内に複数のペイン(画面上の領域)が表示されていますが、これは環境によって少々異なります。

Spyderの画面構成

表示メニューから表示されるペインを変えることが可能です。簡単に私がよく使う以下のペインについて解説します。

  • IPyhtonコンソール
  • 変数エクスプローラ
  • プロジェクトエクスプローラ
  • Pythonエディタ

メニューの表示→ペインからエディタ、IPythonコンソール、変数エクスプローラ、プロジェクトエクスプローラにチェックを入れてみてください。それぞれのペインが表示されます。各ペインはドラッグアンドドロップで移動可能ですので、お好みの位置にカスタマイズしてみてください。

IPyhtonコンソール

IPyhtonを実行できます。IPyhtonコンソールに以下のコマンドを打ち込んでみてください。

from matplotlib import pyplot as plt
import numpy as np
x = np.random.rand(50)
y = np.random.rand(50)
plt.scatter(x, y, s=300, alpha=0.5, linewidths='2', c='#aaaaFF', edgecolors='b')

以下のようにIPythonコンソールのインラインでグラフが表示されます。

インラインで表示させたくない場合は以下を入力してください。

%matplotlib qt

インラインに戻す場合は以下を入力してください。

%matplotlib inline

変数エクスプローラ

IPythonは変数を入力しただけで内容が表示されます。ですが、定義した変数をヒストリーでたどったりするのは面倒な上、表示も少々見づらいものです。変数エクスプローラには過去定義した変数がストックされ、内容を整形して表示してくれます。

また、リストなどの変数は表示が省略されていますが、ダブルクリックで内部を参照することが可能です。先程のコードを実行したときの変数xをダブルクリックすると以下のように表示されます。色は自動で着色されています。

プロジェクトエクスプローラとエディタ

大抵の簡単な作業はIPythonコンソールと変数エクスプローラだけで事足りると思いますが、分析規模が大きくなったり分析プロジェクトが長期になるとプロジェクト単位でファイルを管理することが必要となってきます。Spyderはプロジェクト単位でファイルを管理でき、その中のPythonをエディタで編集することが可能です。

また、エディタには一般的なエディタと同様、静的コード解析機能や補完機能が備わっています。

メニュー→プロジェクト→新規プロジェクトで適当なディレクトリを作業用ディレクトリとして登録してみてください。プロジェクトエクスプローラを右クリックでPythonファイルを追加することができます。適当なPythonファイルを作成して、画面上部にある三角形のボタンを押下してみてください。

IPythonコンソールでPythonスクリプトが実行されます。

分析を行う上で非常に便利なので、IDEを利用されていない方は是非使ってみてください。上記以外に様々な機能があります。詳しく知りたい方は以下のリンク先を参照してください。

https://docs.spyder-ide.org