Python環境の準備

どの環境を選ぶか

pythonを使うにあたり、色々と決めなければならないことがあります。pythonのバージョンはどれを選ぶか? コードエディターはどれを使うか? パッケージの管理はどうするか? ここでは怠惰な人向けに、最新版のAnacondaとconda、それに付随してインストールされるJupyterLabを使います。(仮想環境など、発展的なことは必要になったときに理解して使えば良いという立場でいきます。)

物理の実験用解析ツールとして考えたときに、他に使えそうなのはspyderやpycharmのscientific mode(academic licenseあり)といったところがあると思います。興味のある人は使ってみてください。

Anacondaのインストール

難しいことはありません。公式サイトから、Products→individual editionを選んで自分の環境にあったものをダウンロードし、インストールしてください。

パッケージの準備

どんなプログラミング言語でも、プログラミングをする際には、「世界中の誰かが提供してくれた有用な既存のプログラムのまとまり」を利用することが普通です。pythonではこの「世界中の誰かが提供してくれた有用な既存のプログラムのまとまり」をモジュールと呼びます。そして、似たような目的を持った複数のモジュールをひとまとめにして提供しているものをパッケージと呼びます。自分が、今後何度も使う可能性のあるパッケージは予めインストールしておく必要があります。この作業を行うのがパッケージマネージャです。

pythonのパッケージを管理してくれるパッケージマネージャとして有名なものの中から、ここではpipとcondaを使うことにしましょう。基本的に、どちらでも好きな方だけを使えばよいのですが、anacondaを使ってpythonの環境を用意した場合には、可能な限りcondaを使ってパッケージをインストールするようにしましょう(その理由について、例えばこのページを参照)。

anacondaをインストールする際に、物理実験の解析に必要なパッケージは概ね自動的に一緒にインストールされますが、足りないものもあります。必要に応じて追加していきましょう。

この入門では、グラフの機能を強化するために、ipympl(別名jupyter-matplotlib)というパッケージを利用します。早速インストールしましょう。

ipymplの公式ページによる https://github.com/matplotlib/jupyter-matplotlib 推奨のインストール方法を取るので、一番上の

conda install -c conda-forge ipympl

がインストールコマンドになります。

まず、windowsであれば、anaconda promptあるいはanaconda powershell promptを立ち上げてください。 例えば、windowsのスタートメニューから立ち上げることができます。macではterminalを立ち上げてください。

そこに、上記のコマンド

conda install -c conda-forge ipympl

を打ち込んでエンターを押して、メッセージに従ってキーボード入力を行えばインストールが終了します。

どのパッケージの準備も、流れは基本的に同じです。パッケージの公式サイトで推奨されているコマンドをpromptあるいはterminalで実行するだけです。

ipymplをJupyterLabで使うための準備(最新版のJupyterLabではこの作業は必要ありません。この節は飛ばしてください)

ipymplの機能をJupyterLabで使うには、もうひと手間必要です(2020年11月時点)。公式サイトに記述されているようにnodejsのインストールとJupyterLab widget managerのインストールが必要です。順番に

conda install -c conda-forge nodejs
jupyter labextension install @jupyter-widgets/jupyterlab-manager

を実行してください。

JupyterLabを使う

Anacondaをインストールしていれば、Anaconda-Navigatorというアプリがインストールされているはずです。このAnaconda-Navigatorを立ち上げ、HomeタブのJupyterLabのLaunchボタンを押してください。すると、デフォルトのブラウザ上にJupyterLabタブが立ち上がります。基本的にすべての作業は、このJupyterLabタブ上で行います。

現在JupyterLabが公式にサポートしているブラウザは

に列挙されています。自分の使っているブラウザがサポートされていない場合は、別のブラウザをインストールしてデフォルトのブラウザにしましょう。細かいやり方については検索してください。

今回に限らず、「わからないな」とか「知りたいな」と思ったらweb検索を積極的に利用しましょう。特に、web検索すれば何でも出てくるのがpythonのいいところです。ただし、古い情報や間違った情報も一緒に引っかかる可能性があります。複数の情報源をしらべる。公式情報をしらべる。英語の情報をしらべる。といった、web検索する際の基本的なコツを念頭におくとよいでしょう。

JupyterLabの概要

JupyterLabを最初に立ち上げると、勝手にuntitled.ipynbというタブが開いていると思います。開いていない場合はメニューのfileからNew → Notebookで新しいnotebookを作りましょう(kernelはpython 3を選択しましょう)。

JupyterLabでは、notebookという形式でpythonを実行します。画面右側にはnotebookが表示されており、画面左側にはファイルを操作したり、拡張機能を操作したりするウィンドウが表示されています。

通常、プログラムを組むときには複数行のコードをまとめて一度に実行するのが普通です。そこで、JupyterLab ではこの複数行のまとまりを一度に実行するために、複数行の python のコードを書くことができる領域として「セル(cell)」という概念があります。このセルをさらに複数ひとまとめにしたものを一つのファイルとして管理します。このファイル一つのことをnotebookと呼びます。1つのセルの中のコードはまとめて全部実行されてしまいますが、どのセルをどのタイミングで実行するかは自分で決めることができます。セルの実行結果は、同じノートブック内で、以後に実行するコードのすべてに影響します。また、セルは、いつでも追加したり削除したりできます。セルの内部では、キーボードやマウスを使って、コードを入力していきます。

セルを追加したり修正したり実行したりといったことを自由にできるのが、このノートブックの良いところです。特に、実験データをトライ・アンド・エラーしながら解析してく際には、非常に便利です。あーでもない、こーでもないと考えながらデータを解析するのに向いています。しかし逆に、どのセル・どのコードをどの順番で実行したかが、あとからわかりにくいという問題点があります。この欠点を意識してノートブックを適宜整理するようにしましょう。例えば、解析のやり方がだんだん固まってきたら、コードを整形して、いらないセルを削除したり、セルの順番を変えたりといった工夫が有効でしょう。また、ルーチンワークで、似たようなデータに全く同じ解析を行うことがわかっている場合には、ノートブックを使い回すのではなく、ノートブックファイルを複製して、各データごとにノートブックを分けると良いでしょう。そうすることで、ノートブックファイル自体が一種の実験ノートのようになります。どのようなパラメーターでどのような解析を行ったのかが残るためです。

例えば私の場合、まずひとつのフォルダに必要なデータを全部入れておき、そのフォルダ内にnotebookファイルを作ります。実験の解析方法がある程度固まるまでは、試行錯誤を繰り返して適当にnotebook内にコードを書いたり実行したり修正したりします。ある程度、解析方法が固まってきたら、その時点でnotebookファイル全体を複製します。元のnotebookファイルはバックアップとして残しておき、新しいnotebookファイル内のコードをやセルを整形、不要な部分は削除してしまいます。基本的に上から順番にセルを実行すれば解析が完了するようにnotebookを整えたら、コメントなど簡単な説明を追加してnotebookを完成させます。実際にnotebookを上から順番に実行してみて、うまくいくことを確認したら終了です。次に、別の日に似たようなデータを取得した場合、新しくフォルダを作り、そこに必要なデータ全てを入れ、先程作ったnotebookファイルをコピーして置きます。ここでもとのnotebookファイル自身を使うのではなく、もとのnotebookファイルには触らず、コピーすることが大事です。コピーした方のnotebookファイルを使いましょう。仮にデータに応じて微妙にnotebookを書き換えたとしても、その記録がnotebook内に残るので、あとから見直したときにも、その過程を理解することができます。notebookファイル自身の容量は大したこと無いので、数が増えても困ることはありません。

ノートブックの外観は図のようになっています。実際のノートブックの使い方は次から見ていきますが、ここで一点だけ。セルには、コードを書く用のセル(Code cell)と、説明文を書くだけのためのセル(Markdown cell)の2種類があります。この解説では基本的にコードセルしか使いませんが、何かの拍子に間違ってMarkdown cellを作ってしまった場合は、セルの種類をコードセルに変更(図参照)してください。

最終更新