# (必須)モジュールのインポート
import os
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt

# 日本語フォントの設定(Mac:'Hiragino Sans', Windows:'MS Gothic')
plt.rcParams['font.family'] = 'MS Gothic'

2. プログラミング環境の構築#

2.1. Anacondaのインストール#

  • Anacondaのアンインストール(環境再構築の場合)

    • コントロールパネル > プログラムのアンインストール

    • Anacondaを選択してアンインストール

    • anaconda3というフォルダが残っている場合は手動で削除する

      • ユーザフォルダまたはCドライブ直下を確認

    • PC再起動

  • インストーラのダウンロード

  • Anacondaのインストール

    • Select Installation TypeでJust Meを選ぶ

    • Choose Install LocationはデフォルトのままでOKだが,anacondaのインストール先のパスに日本語が含まれるとうまくいかないので注意

    • Advanced Installation Optionsで以下の2つに必ずチェックを入れる

      • Add Anaconda3 to my PATH environment variable

      • Register Anaconda3 as my default Python 3.9

  • Anaconda Navigatorを起動して,インストールが成功しているか確認する(適宜アップデートする)

2.2. 作業フォルダの作成#

データ分析では,様々なファイルを扱わなければならない. 例えば,本講義では,Pythonのソースコード(.py),Jupyter NoteBook(.ipynb),データ(.csv),図(.pdf.png)などのファイルを扱うことになる. これらのファイルが自分のPC内のどこに保存されているかを把握しておかないと,ファイルを探すだけで時間を取られてしまう. データ分析を始める際にまず行うべきことは,PC内のフォルダやファイルを整理することである.

まず本講義専用の作業フォルダを作成する. フォルダ名は自分で分かれば何でも良いが,なるべく半角英数字とし,スペースは絶対に入れないこと. 作業フォルダの作成場所はできればクラウドストレージのフォルダ(OneDriveやGoogle Drive)の中に作ることを推奨する(こうすれば,自動的にクラウド上にバックアップされる).

ここでは,ローカルディスク(C:)>ユーザー>ユーザー名>OneDriveの中にsport_dataという作業フォルダを作ったとする:

[OneDrive]
    - [デスクトップ]
    - [ドキュメント]
    ...
    - [sport_data]

本講義で扱うファイルは全てこのsport_dataの中に保存する. sport_dataフォルダの中身は次のように章ごとのサブフォルダやレポート用のフォルダに分けておくと良い:

[sport_data]
    - [1_introduction]
    - [2_environment]
        - 2_environment.ipynb
    - [3_numpy]
    - [4_pandas]
    - [5_matplotlib]
    - [6_event]
    - [7_tracking]
    - [report]
    - [others]

2.3. Jupyter Lab#

本講義ノートは.ipynbファイル形式でダウンロードしてJupyter上で実行可能である. Jupyterの環境構築の方法はいくつかあるので自分の好きな方法を選んで良いが,Anacondaをインストールすると,自動的にJupyter NotebookとJupyter Labが使えるようになる.

Jupyter Labの起動

  • Anaconda Navigatorを起動

    • [スタートメニュー]→[すべてのアプリ]→ [Anaconda3(64-bit)] →[Anaconda Navigator]

  • [Jupyter Lab]をLaunch

ノートブック(.ipynbファイル)の起動

  • .ipynbファイルをダウンロードし,作業フォルダに保存する.

    • 講義ノート上部のアイコンから.ipynbをクリック

    • 自動保存された場合はダウンロードフォルダ内に保存される

  • Jupyter Labを起動し,左上のフォルダアイコンをクリックする.

  • .ipynbファイルを保存した作業フォルダに移動し,.ipynbファイルをダブルクリックする.

2.4. Maplotlibの日本語対応#

Matplotlibはグラフ作成のためのライブラリである(詳しくは基礎編で解説する). Matplotlibは標準で日本語が出力されないので,ここでは日本語対応する方法を2つ紹介する.

方法1:rcParamsに使用するフォント名を指定する

以下のように,matplotlib.pyplotをインポートしておき,plt.rcParams['font.family']に日本語フォントを指定する. 使用可能なフォントは環境によって異なるが,Windowsの場合は'MS Gothic''Meiryo'などを指定する. Macの場合は'Hiragino Sans'を指定する.

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'MS Gothic'

方法2: japanize_matplotlib を利用する

  • 2024年9月現在,Python 3.12以上ではjapanize_matplotlibが使えない.

  • 代わりにmatplotlob-fontjaが公開されている(詳しくはこちら).

2.5. パス(Path)について#

2.5.1. パスとは何か?#

Pythonプログラムの実行,ファイルの読み込み,加工したデータの保存などを行うには,ファイルやフォルダの場所(PC内のアドレス)を指定する必要がある. このアドレスを指定する文字列のことをパス(Path)と呼ぶ. Windowsの場合,パスはフォルダの階層構造を区切り文字¥(またはバックスラッシュ\)によって区切った形式で以下のように表される:

C:¥Users¥narizuka

フォルダの階層の区切りは¥(またはバックスラッシュ\\)によって表されており,¥の隣にはフォルダの名前が記載されている. 上の例は,Cドライブ(C:)の中にあるUsersフォルダの中のnarizukaフォルダのパスを表す.

2.5.2. 絶対パスと相対パス#

パスには絶対パスと相対パスの2種類が存在する. パスを使用する場面の具体例として,matplotlibで描画した図を指定したフォルダ内に保存する場合を考える. まず,以下のプログラムを実行する.

fig, ax = plt.subplots(figsize=(3.5, 3))
x = np.arange(-np.pi, np.pi, 0.01)
ax.plot(x, np.sin(x))
ax.set_xlabel('X軸'); ax.set_ylabel('Y軸')

実行がうまくいけば,サイン関数が出力されるはずである.

次に,出力された図を自分のPCの任意のフォルダに保存する. このためには,fig.savefig(path)のように保存先のパスを指定すれば良い. このとき,パスの指定方法には以下の2つの方法が存在する.

1. 絶対パスによる指定#

# 自分の作業フォルダの絶対パスをコピーして貼り付ける
fig.savefig(r"C:\Users\narizuka\OneDrive\sport_data\2_environment\graph.pdf", bbox_inches="tight")

この方法では,PC内で最も上の階層であるCドライブから始まるパスを指定しており,これを絶対パスと呼ぶ. Windowsで絶対パスを取得するには,パスをコピーしたいファイルやフォルダを右クリックし,「パスのコピー」を選択すれば良い. 絶対パスを使っておけばエラーは出にくいが,PCの奥深くにあるフォルダだとパスが長くなるという問題がある.

なお,Windows環境においてパスをコピーして貼り付けると区切り文字がバックスラッシュ\または¥になるはずである. ところが,pythonではバックスラッシュ\と文字を組み合わせたエスケープシーケンスいう特別な文字列が存在し,例えば,\nは改行文字,\tはTAB文字を意味する. これにより,上の例の中にある\tの部分はパスの区切りではなくエスケープシーケンスとして認識され,エラーが出ることがある. 以上のような問題は,パスの先頭にrを付けることで解決できる. これは,raw文字列と呼ばれ,""の中に指定した文字列をそのままの形で認識させることができる.

2. 相対パスによる指定#

# 相対パスを指定する(バックスラッシュを区切り文字にすれば先頭のrは必要ない)
fig.savefig("./graph2.pdf", bbox_inches="tight")

2つ目の方法では,パスが'.'から始まっているが,'.'は現在の居場所(カレントディレクトリと呼ぶ)のパスを意味する. デフォルトではカレントディレクトリは.ipynbファイルが保存されているフォルダとなる. このように,カレントディレクトリのパス'.'から始まるパスを相対パスと呼ぶ.

なお,カレントディレクトリは以下のコマンドにより任意のフォルダに変更することができる.

import os
os.chdir(path)

相対パスを用いると,パスが短くなるので便利であるが,カレントディレクトリがどこなのかを認識しておく必要がある.

2.6. Pythonのルール#

2.6.1. 変数・数値・文字列#

  • 変数と代入

    • 変数は,データを格納するための箱であり,名前を付けることができる.

    • 変数の中に数値や文字列などのデータを入れることを代入と呼ぶ.

    • 代入は=を使って行う.

    • 変数の中身を確認するにはprint()を使う.

x = 1
print(x)
1
  • 文字列

    • 文字列は,'または"で囲まれた文字である.

    • 例えば,'abc'"abc"は文字列である.

x = 'abc'
print(x)
abc
  • 数値

    • クォーテーションで囲まれていない数字は数値である.

    • 例えば,x = 1とすると,変数xの中には数値1が入る.

    • 数値は整数(int)と,小数点以下を持つ数(float)に分けられる.

    • 整数は1-1,小数点以下を持つ数は1.0-1.0である.

2.6.2. コメント#

  • コメントは,プログラムの中に書く説明文である.

  • 冒頭に#を付けることで,その行はコメントとして認識される.

  • コメントは,プログラムの実行には影響しない.

# これはコメント文

2.6.3. カッコの使い方#

Pythonでは,カッコは以下のように使われる.

カッコの種類

使用用途

丸カッコ ()

・関数やメソッドの呼び出し
・タプルの作成

func(x,y)
(a, b)

角カッコ []

・リストの作成
・配列に対するアクセス,スライス

[1, 2, 3]
x[0], x[2:5]

波カッコ {}

・辞書や集合の作成

{'a': 1, 'b': 2}
{1, 2, 3}

2.6.4. インポート#

ライブラリのインポート#

  • Pythonでは,関数やクラスをまとめたものをライブラリと呼ぶ.

  • ライブラリを使うためには,最初にインポートする必要がある.

  • インポートは,importを使って行う.

  • 例えば,import numpy as npとすると,NumPyライブラリをnpという名前で使うことができる.

import numpy as np

インポートしたライブラリの使い方#

  • インポートしたライブラリの関数を使うときは,ライブラリ名.関数名のように書く.

  • 例えば,np.array([1, 2, 3])とすると,NumPyライブラリのarray関数を使って,配列を作ることができる.

np.array([1, 2, 3])
array([1, 2, 3])