Anaconda

Pythonでデータ分析をする場合、Pythonに対して各種ライブラリを必要に応じて自分でインストールしてもいいのですが、Anacondaを利用するとより簡単に環境を構築することが可能です。既にPython3でIPython、pandas、numpy、scipy、matplotlibが利用できる環境がある場合はこのページは読み飛ばしても問題有りません。

Anacondaとは

Anacondaとはデータサイエンス用のPythonパッケージをまとめたPythonディストリビューションの1つです。

Anaconda Python/R Distribution

Pythonのパッケージだけではなく、他言語ライブラリやユーティリティも含まれています。例えば、機械学習でNvidiaのGPUを利用するためのCUDA環境を簡単に構築することも可能です。

Anacondaのインストールと注意点

Anacondaのインストールは先程のリンクよりOSに応じたインストーラーをダウンロードして実行するだけなのですが、いくつか注意点があります。

pyenv等の仮想化以外の方法で既にPythonがインストールされていると競合する場合があります。インストール前にpip freeze等で環境をバックアップしてからアンインストールする必要があります。

また、標準のPythonのパッケージマネージャであるpipはanaconda上で実行可能なのですが、pipを実行することによりAnaconda環境が壊れてしまう場合があります。Anacondaではパッケージ管理コマンドとしてcondaコマンドが提供されているので基本的にはこちらを使うようにしましょう。また、仮想環境の管理はvenvではなくこちらもcondaコマンドを使用します。

ユーティリティ・パッケージ

本講座で利用するパッケージはAnacondaで予めインストールされているもののみとなります。以下に簡単に紹介したいと思います。もし追加でパッケージをインストールしたい場合はページ下部condaコマンドの使い方を参照してください。

IPython

IPythonはデータ分析のための分析・可視化ツールをインタラクティブに利用できるシェルです。詳しくは以下を参照してください。
IPython 入門

以下で紹介するSpyder、JupyterLab上のインタラクティブウィンドウで動作します。コマンドライン上でipythonと打ち込んでも起動しますので、通常のインタラクティブpythonの代わりに使用することもできます。

JupyterLab

JupyterLabは、Webブラウザベースのインタラクティブな分析IDEで、この記事を書いた2019年時点でおそらく最も人気の分析用IDEだと思います。サーバーでの動作となるので、もしかしたら非エンジニアの方は少々とっつきにくく感じるかもしれません。一方でネットワーク経由で利用できるため、開発と分析を並行しているエンジニアの方の場合、ローカルでは開発用の通常のPythonを、分析用サーバーのdockerでJupyterLabを、といった使い分けができて便利です。

Spyder

JupyterLabと並ぶ分析用IDEです。シンプルで使いやすく、学習コストが低いのがメリットです。次回紹介します。
Spyderの使い方

pandas

pandasはデータを表形式で扱うためのパッケージです。詳しくは以下を参照してください。
pandas入門

numpy

numpyは配列計算を扱うパッケージです。詳しくは以下を参照してください。
Numpy入門

scipy

scipyは様々な科学技術計算を扱うためのパッケージです。本講座では統計を扱うstatを主に使用する予定です。統計以外に、信号処理、フーリエ変換、画像処理等の機能があります。

matplotlib

matplotlibはPythonでグラフ、チャート、マップといった可視化機能を提供するパッケージです。

※matplotlibはコードの書き方にMATLAB形式とOO形式(Object-Oriented)という2つの書き方があります。もともとMATLABというソフトウェアをエミュレートするために開発されものであるためMATLABライクに書くことができるですが、現在はOO形式が推奨されています。当サイトでは古いMATLAB形式でコードを記述している点に注意してください。今後OO形式に随時移行する予定です。

A note on the Object-Oriented API vs Pyplot

https://matplotlib.org/users/history.html

condaコマンドの使い方

上記に紹介したツール以外にAnacondaでは追加で様々なパッケージやユーティリティをインストールすることが可能です。(この講座ではcondaコマンドは使わないので興味が無い方は読み飛ばしていただいてかまいません。)

以下にコマンドの使い方について簡単に解説します。

環境を管理する

Python3標準のvenvのように複数環境を管理することが可能です。また、pyenvのようにpythonを複数バージョン管理することも可能です。

環境を構築する場合、以下のコマンドを実行します。

conda create --name <環境名> python

環境を切り替える(アクティブ化)場合、以下のコマンドを実行します。

conda activate <環境名>

Windowsの場合はactivate <環境名> でアクティブ化します。

アクティブ化した環境を抜ける(非アクティブ化)場合、以下のコマンドを実行します。

source deactivate

Windowsの場合はdeactivateコマンドで環境から抜けることができます。

環境一覧を表示する場合、以下のコマンドを実行します。

conda info --envs

パッケージを管理する

パッケージの検索、インストール、アップデート、削除、インストール済みのパッケージリスト表示等が行えます。

パッケージの検索をするにはsearchを使います。

conda search <キーワード>

installでパッケージがインストールされます。

conda install <パッケージ名>

インストールしたパッケージをアップデートするには、以下のコマンドを実行します。また、conda自体をアップデートする場合は2行目のように指定します。

conda update --name <環境名> <パッケージ名>
conda update conda

インストールしたパッケージをアンインストールするには、以下のコマンドを実行します。

conda remove --name <環境名> <パッケージ名>

インストール済みパッケージを確認するには、以下のコマンドを実行します。

conda list --name <環境名>

インストール済みパッケージをエクスポートするには、以下のコマンドを実行します。

list --export

以上のように、condaコマンドでvenvのような環境マネージャととpipを始めとしたパッケージマネージャとほぼ同じような使い方が可能となります。