en

Pythonと心理学研究

データ分析・シミュレーションなど

サンプルスクリプトは、利用者の責任において、自由に御利用下さい。

岡本安晴

 

心理学研究においてデータ分析やシミュレーションを行うのにPythonも使っている。研究では、いろいろなプログラムを開発するが、そこで作成したプログラムの内、備忘録を用意しておきたいと思うサイトを用意した。C++のウェブサイトも別に用意している。備忘録として始めた本サイトであるが、雑然としてきた。これからPythonを始めようとする人向けのPython準備の簡単な説明ウェブサイトも作成してみた。

 

利用したいライブラリの関係でPythonの最新版以外のバージョンを使用したいことがある。また、何らかの原因でPythonの動作が不安定になることがある。例えば、最近(202012月)急にNumpyが使えなくなった。Windowsの更新が理由らしい(https://tinyurl.com/y3dm3h86)が、Anacondaの仮想環境の方は大丈夫である。Pythonのバージョンを選んでインストールする方法、およびAnacondaでのPythonインストールを、このウェブサイトで説明した。

 

Pythonプログラミングにおける標準入出力の簡単な使用例を別のウェブサイトに用意した。

Pythonサンプルプログラムのウェブサイト

Pythonサンプルプログラムのウェブサイト、2つ目

Python雑記

を用意した。

なお、これらのウェブサイトのサンプルスクリプトでは、パッケージnumpy, pandas, matplotlib, scipyを利用しているものが多い。これらのインストールは

pip install numpy pandas matplotlib scipy

pipコマンドで行うことができる。

ベイズ統計分析でStanを使用しているスクリプトでは、Python用のStanパッケージpystanが必要である。パッケージpystan

pip install pystan

と、pipコマンドでインストールすることができる。Stanの使用には、C++コンパイラがインストールされている必要がある。詳しくは、このウェブサイトで説明した。

パッケージのインストールは、<パッケージのインストール>で説明している。

 

Pythonをはじめて使うという人のための簡単な説明を、以下に用意した。

Pythonは汎用のプログラミング言語である。グラフ描画、ファイル入出力、多変量解析、ベイズ分析のプログラミングの説明を拙著<岡本安晴「いまさら聞けないPythonでデータ分析」丸善出版>で行っている。統計入門用のPythonスクリプト例のウェブサイトも用意した。統計分析のPythonスクリプト入門のウェブサイトも用意している。

注意: 本ウェブサイトのプログラムにおいてmatplotlibによる描画スクリプトが使われている場合、Jupyterでの使用においては次の1行

%matplotlib inline

を置いておく。場所は最初の描画コマンドの前か、最後の描画コマンドの後であるが、この1行がないと描画されない(現在は、描画される、2021.01)。サンプルスクリプトをこのウェブサイトに用意した。

本ウェブサイトからダウンロードしたプログラムのJupyterでの使用例のウェブサイトも用意した。このサイトでは、簡単な仮想環境とJupyterのインストールについても説明している。。Jupyter間のプログラムの簡単なコピー・貼り付け法についてのウェブサイトも用意している。

PyStanPyMC3WindowsあるいはCentOS 8での使用についてのウェブサイトを用意した。

Pythonを仮想環境で使うときは、端末での操作も必要になるが、最小限pythonコマンドとcdコマンドの2つが使えれば十分である。これらの簡単な説明のウェブサイトも用意した。

 

 

はじめてのPython

 

Jupyterでのプログラミングは、別のウェブサイトで説明している。ただし、Jupyterでの使用の準備の前に、以下で説明する方法でPython3をインストールしておく必要がある。

Windowsの場合とubuntuの場合、およびCentOSの場合について説明する。まず、Windowsの場合について説明し、その後、ubuntuの場合について説明するという順序を繰り返す。CentOSでの使い方は、基本的にubuntuの場合と同じであるので、CentOSでのPythonのインストールについて簡単に説明する。

 

インストールと基本的使い方

 

インストール

 

Windowsパソコンの場合(Ubuntuの場合はこちら

 

Windowsパソコンの場合のPythonインストールは、このウェブサイトを参照されたい。

Pythonの最新版以外のバージョンをインストールする方法の説明のウェブサイトも用意した。最新版(2021.02.28現在、Python 3.9.2)より1つ前のバージョン(2021.02.28現在、Python 3.8.8)の方が、使えるライブラリ(モジュール)が多いことが期待できる。最新版がPython 3.9.2Python 3.9のバージョンであれば、その1つ前のバージョンはPython 3.8のバージョンで、Python 3.8の中で最新のもの(2021.02.28現在、Python 3.8.8)を選ぶ。同じバージョン内であれば、最新のものの方が安定していて対応しているモジュールも多いと考えられる。

 

 Pythonのインストール後、スタートメニュを表示すると、図A.1のようになっている。

A.1

 

IDLE」を選んでクリックする。IDLEPythonの統合開発環境(Integrated Development and Learning Environment)である。IDLEが起動すると、図A.2のウィンドウが表示される。

A.2

 

>>>」の右側に、実行するスクリプトを入力する。Pythonで実行するコードあるいはプログラムはスクリプトと呼ぶ。スクリプトの入力は、コンソール端末あるいはメモ帳などの普通のエディタの場合と同じ要領である。入力位置は、カーソル(図A.2の場合は縦線|)の点滅で示されている。式「1 + 2」を入力した状態が図A.3に示されている。

A.3

 

実行させるスクリプト入力後、Enterキーを押すと、スクリプトが実行される。図A.3の場合は、式「1 + 2」の計算が行われる。実行後、計算結果が表示され、「>>>」が表示されて次のスクリプト入力待ちになる(図A.4)。

A.4

 

 次に実行するスクリプトがあれば、それを入力すればよいが、IDLEを終了するときは、「exit()」と入力する(図A.5)。

A.5

 

IDLEを本当に終了(kill)するのかどうか、確認フォームが表示される(図A.6)。

A.6

 

OK」ボタンをクリックすると終了になる。

 

Ubuntuの場合

 

 Ubuntu 16.04LTSでは、Python 2Python 3が既にインストールされている。Python 3のインストールを確認するため、コンソール端末を起動して、  コマンド「python3」を入力してみる(図B.1)。

B.1

 

Python 3が起動したことを示すメッセージが表示され、不等号を3個並べた「>>>」が表示されて、入力待ちの状態になる(図B.1)。「>>>」の右側に、実行するスクリプト、図B.2の場合は、式「1 + 2」を入力して、Enterキーを押すと、実行される。計算結果が表示され、「>>>」が表示されて、次のスクリプト入力待ちとなる。

B.2

 

Python 3を終了するときは、スクリプト「exit()」を実行する(図B.3)。

B.3

 

 

CentOSでのPython 3のインストール

CentOS 7には、既にPython 2がインストールされていて、コマンドpythonPython2が呼び出される。Python3を呼び出すときは、まずインストールする必要がある。インストールは以下の手順で行うことができる(2019.08)。これはコマンドyumを用いる方法である。Python3の最新版をダウンロードしてmakeによりインストールする方法もあるが、yumでインストールできるPython3を用いる方が使い易い。

まず、suコマンドを実行して、以下の操作を管理者権限で行う。

yumでインストールするために、以下のコマンドでRPMをインストールしておく。

yum install -y https://centos7.iuscommunity.org/ius-release.rpm

その後、次のコマンドでPython 3の最新版のチェックを行っておく

yum search python36

次に、Python 3.6のインストールを行う。次のコマンドの実行でPython 3.6.8がインストールされる(2019.08)。

yum install -y python36u python36u-libs python36u-devel python36u-pip

インストール後、Python 3をコマンドpython3.6で次のように呼び出すと、インストールされたバージョンが表示される。

python3.6 V

上のコマンドに対しての出力は

Python 3.6.8

である(2019.08)。

次に必要なモジュールをインストールするが、まずインストール用コマンドpipの更新を行う。Python 3.6用なのでpip3.6を付けてpip3.6によってpipを更新するという形になる。

pip3.6 install --upgrade pip

pipの更新後、必要なモジュールをインストールする。例えば、モジュールnumpymatplotlibscipyをインストールするときは以下のように行う。

pip3.6 install numpy matplotlib scipy

また、モジュールtkinterも必要なときは、これはyumによってインストールする。

yum install python36u-tkinter

である。

 

 

Pythonの使い方

 

 2つの使い方、インタラクティブ モード(interactive mode)とスクリプト モード(script mode)がある。スクリプトをコンソール画面において入力しながら実行する場合がインタラクティブ モードであり、実行するスクリプト全体をファイルとして用意して、ファイルに書かれたスクリプトを実行するのがスクリプト モードである。Pythonで実行するプログラムあるいはコードはスクリプトと呼ぶ。以下に、それぞれのモードでの使い方をWindowsUbuntuの場合について説明する。

 

Windowsの場合(Ubuntuの場合はこちら

インタラクティブ モード

 まず、PythonIDLEによる場合を説明する。IDLEを起動するためにスタートメニューの項目「IDLE (Python 3.6 32-bit)」を選ぶ(図C.1)。

C.1

 

IDLEのウィンドウが表示される(図C.2)。

C.2

 

スクリプト、例えば「a = 1」と入力する(図C.3)。

C.3

 

これは、変数aに1を入力するというものである。変数aを左辺に書くことにより、aは自動的に用意される。「a = 1」と入力してからEnterキーを押すと、入力したスクリプトが実行され、「>>>」が表示されて次の入力待ちとなる(図C.4)。

C.4

 

変数aの値を表示するために、変数名aのみを入力する(図C.5)。

C.5

 

「a」    と入力して、Enterキーを押すと、aの値が表示される(図C.6)。

C.6

 

 変数aに加えて、新しく変数bに値2を設定する(図C.7)。

C.7

 

変数の和「a + b」を求めるスクリプトを実行すると、その値が表示される。しかし、和を変数sumに代入する式「sum = a + b」の実行の場合は、sumへの代入が実行されるだけで、変数sumの値は表示されない。表示させるために関数printを用いる。スクリプト「print(‘a + b = ‘, sum)」を実行すると、「a + b = 」に続けてsumの値が表示される。文字列は、引用符で囲んで表す。関数printで表示するものは、コンマ , で区切って並べる。文字列はそのまま表示され、数値を表す変数はその値を表す文字列が表示される。

 IDLEの終了は、関数exit()を実行すればよい(図C.8)。

C.8

 

IDLEのウィンドウの右上角のX印をクリックしてもウィンドウが閉じられて終了となる。

 

 インタラクティブ モードはコンソール端末からでも利用できる。コンソール端末は、Windows PowerShellが使い易い。スタートメニューから「Windows PowerShell」を選ぶ(図C.9)。

C.9

 

PowerShellのウィンドウが表示されるので(図C.10)、コマンド「Python」を実行するとインタラクティブ モードになり、入力プロンプト「>>>」が表示される。

C.10

 

スクリプトを入力すると実行される。これは、上で説明したIDLEの場合と同じである。関数exit()の実行でインタラクティブ モードの終了となる。

 

スクリプト モード

 スクリプト モードでは、ファイルに格納されたスクリプトが実行されるので、実行したいスクリプトを格納したファイルを用意する必要がある。ファイルは、適当なエディタで作成すればよいが、Windowsの場合はIDLEによる方法が便利である。新しくスクリプトを格納したファイルを用意するときは、IDLEを起動して、メニュー項目「File|New File」を選ぶ(図D.1)。

D.1

 

新規ファイルの編集用ウィンドウが左上に「untilted」と書かれて表示される(図D.2)。

D.2

 

このファイルを、名前を付けて保存する。メニュー項目「File|Save As」を選ぶ(図D.3)。

D.3

 

「名前を付けて保存」ダイアログウィンドウが表示されるので、適当な名前を付けて保存する(図D.4)。

D.4

 

ファイル拡張子は「.py」である。エディタ ウィンドウ内に実行するスクリプトを入力する(図D.5)。

D.5

 

入力が終われば、メニュー項目「Run|Run Module」を選ぶ(図D.6)。

D.6

 

作成した(あるいは、エディタで変更した)ファイルの保存を行わずに実行しようとしたため、ファイルの保存確認のメッセージ ボックスが表示される(図D.7)。

D.7

 

OK」ボタンをクリックすると、保存後、実行される。メニュー項目「Run|Run Module」を選ぶ前に、スクリプトを入力したファイルを保存しておけば、図D.7のメッセージボックスによる確認は行われずに実行される。また、既存のファイルを開いて編集後、保存せずに実行すると古いファイルが実行されるので注意。ファイルを編集したら、必ず保存してから実行する。スクリプトの実行が始まると、IDLEのウィンドウ(図D.1)に出力が表示される(図D.8)。

D.8

 

スクリプト モードのときは、変数名を「a」と書くだけ(図D.5の2行目)では、変数の値は表示されない。表示するときは、関数printを用いる。図D.8の出力では、図D.5の2つのprint関数「print(‘a = ‘, a, ‘  b = ‘, b)」と「print(‘a + b = ‘, a + b)」によって変数abの値、および式a + bの値が表示されている。

 IDLEを終了するときは、ウィンドウ右上角のX印をクリックするか、メニュー項目「File|Exit」を選べばよい。

 

 コンソール端末でスクリプト モードを使うときは、コマンドPythonにパラメータとして実行するスクリプトの格納されたファイル名を付けてコマンドPythonを実行すればよい。例えば、コンソール端末としてWindows PowerShellを使った場合は図D.9のようになる。

D.9

 

コンソール端末を起動してから、実行するスクリプトファイルの置かれているディレクトリ(フォルダ)に移動する。図D.9では、図D.5のファイルSample.pyの置かれているディレクトリに移り、コマンドcatによって、中身を表示して確認している。スクリプトファイルSample.pyを実行するために、Pythonコマンドを

Python Sample.py

と実行している。一般的には、

Python スクリプトファイル名

である。コマンドPythonによりスクリプトファイルが実行されることが、コンソールでの出力に示されている。

 

 

Ubuntuの場合

 Ubuntuの場合、IDLEのような統合開発環境を使うときはIPyhtonなど適当なソフトをインストールする必要がある。ここでは、コンソール端末からPythonを使う方法を説明する。Ubuntu 16.04LTSでは、Python 2Pyhton 3が予めインストールされている。Python 3を使う場合は、Pythonの呼び出しは「python3」と3を付けて行う。

 

インタラクティブ モード

 コンソール端末で「python3」とコマンドを入力すると、インタラクティブ モードになる(図E.1)。

E.1

 

インタラクティブ モードでの使い方は、Windowsの端末での使い方(図C.10)と同じである。Ubuntuでの使用例(図E.2)とWindowsでの使用例(図C.10)を比較されたい。

E.2

 

スクリプト モード

 この場合も、Windowsでのコンソール端末での使い方と同じである。まず、実行するスクリプトのファイルを作成する。比較のために、Windows用に作成したファイル(図D.5)と同じ内容のファイルSample.pyを作成した(図F.1)。

F.1

 

スクリプトファイルの置かれているフォルダ―に移って、「python3 Sample.py」とコマンドを入力するとスクリプトが実行される(図F.2)。

F.2

 

Windowsの場合の実行(図D.8)と同じであることが確認できる。

 

 

パッケージのインストール

 Pythonには、目的に応じたいろいろな機能がパッケージとしてまとめられている。グラフ描画用パッケージmatplotlib、数値計算用パッケージnumpyなどいろいろなものがある。インストールは、Pythonをインストールするとコマンドpipもインストールされるので、これを用いる。Windowsの場合とUbuntuの場合に分けて説明する

 

Windowsにおけるパッケージのインストール(Ubuntu場合はこちら

 コマンドpipを使うために管理者権限でコンソール端末を起動する。スタートメニュー項目「Windows PowerShell」をマウスの右ボタンでクリックして表示される項目から「管理者として実行する」を選ぶ(図G.1)。

G.1

 

「このアプリがデバイスに変更を加えることを許可しますか?」というメッセージのダイアログボックスが表示されるので、「はい」ボタンをクリックする。PowerShellが管理者権限で起動される(図G.2)。

G.2

 

コマンドを

pip install matplotlib numpy

と実行すると、matplotlibnumpyがインストールされる。コマンドpipの使用の一般形は

pip install パッケージの並び

である。

 

Ubuntuにおけるパッケージのインストール

 Ubuntuの場合もWindowsの場合と同様であるが、管理者権限でのコマンドpipの呼び出し方が異なる。Ubuntu 16.04LTSの場合にPython 3用にインストールするときは、管理者権限で実行するために先頭にsudoを付けてコマンドpip3を呼び出す。パッケージmatplotlibnumpyをインストールするときは、

sudo pip3 install matplotlib numpy

となる(図H.1)。

H.1

 

 Ubuntu 16.04LTSの場合、GUI(グラフィックユーザーインターフェース)用のパッケージtkinterが予めインストールされていないのでインストールしておくと便利である(Windowsの場合は、Pythonインストール時に一緒にインストールされる)。パッケージtkinterのインストールはコマンドpipではなく、コマンドapt-getを用いて

sudo apt-get install python3-tk

とする(図H.2)。

H.2

 

 

Pythonによるデータ分析の解説書

岡本安晴「いまさら聞けないPythonでデータ分析―多変量解析,ベイズ統計分析(PyStanPyMC)―」丸善出版

を上梓した。