Pythonの基本
授業目的と学習方法
この授業では,ビジネスや日常生活における意思決定の場面において, 論理的に問題を捉えて最適な行動を選択できるようになるために, 統計に基づくデータサイエンスのスキルを学ぶことを目的とします. 近年は高速な計算機(PC)を用いて,多種多様なデータを大量に分析することが可能になり, データサイエンス が一つの学問として注目される様になりました. 本授業を履修した学生には,この授業で学んだデータサイエンスのスキルをレポートや卒業論文で活かすことはもちろん, 世の中に存在する社会課題の解決手段として応用することを期待しています.
データ分析のためのツールとして,次のソフトウェアを利用します. Excel は分析対象のデータの概要を把握するために用い, Jupyter Lab はPythonで実装されたデータ分析手法を適用するために用います. 多くの学生はExcelの利用経験があると思いますが,Pythonによるプログラミングは初めてかもしれません. この授業では,実際にデータに触れながら,Pythonの使い方に関しても学習してもらいます.
- 表計算ソフト Microsoft Excel
- Pythonのプログラミング環境 Jupyter Lab
Jupyter Lab
Pythonのプログラム開発にはJupyter Labを利用します. Jupyter Labは,ChromeやEdgeなどのブラウザで動作するウェブ・アプリケーションです. 公式サイトが公開しているオンラインの体験版の利用も可能ですが, ローカルのPCにインストールして利用する方が良いでしょう(大学のPCにインストールされています). Jupyter Labを起動して,Python 3 のノートブックを開きましょう. 最初にノートブックに名前を付けて保存します. ここでは,chapter1.ipynbという名前に設定しましょう.
Jupyter Labは,セル と呼ばれるテキストフィールドにプログラムを入力する仕組みになっています. セルに次のコードを入力してみましょう.
# 加算をするプログラム
1+2
コードを入力したら,Runボタン をクリックしましょう([Shift]+[Enter] でもOK).
するとプログラムが実行され,その結果3
が表示されます.
このように,Jupyter Labでは,ユーザはセルにプログラムを入力しながら,インタラクティブにプログラムの開発が可能です. 本授業のテーマであるデータ分析はもちろん,機械学習やAIなどのプログラム開発にも用いられます.
Pythonの基本
これから,Pythonを利用してデータ分析に取り組む上で最低限知っておくべきPythonの基本を学んでおきましょう.
print関数
数値や文字列を画面に出力するには print関数 を用います.
文字列を出力する際は"
で括る必要があることに注意してください.
後に説明する 変数 出力することもできます.
セルに複数行のコードを入力したときは,print関数を用いなくとも最後のコードの実行結果は,
必ず画面に出力される仕組みになっています.
print(3) # 数値を出力
print("Three") # 文字列(半角文字)を出力
print("三") # 文字列(全角文字)を出力
3
Three
三
四則演算
加算,減算,乗算,除算,商, 剰余,累乗を計算します.
それぞれ,演算子は+
,-
,*
,/
,//
,%
,**
を用います.
print(5 + 2) # 加算
print(5 - 2) # 減算
print(5 * 2) # 乗算
print(5 / 2) # 除算
print(5 // 2) # 商
print(5 % 2) # 剰余
print(5 ** 2) # 累乗
7
3
10
2.5
1
25
変数
数値や文字列などの値を記憶させるには 変数 を利用します.
変数に値を記録させることを 代入 と呼びます.
変数名には,アルファベット,数字,アンダースコア_
を利用することができます.
変数名の最初の文字に数字を用いることはできないことに注意してください.
x = 10 # 変数xに10を代入する
y = 0.01
xyz = "abc"
name = "山田太郎"
変数に記憶させた値を表示するにはprint関数を用います.
変数と文字列を組み合わせて表示するには フォーマット文字列(f文字列) を利用します.
出力する文字列の前にf
を付け,文字列に埋め込む変数には{}
を付けます.
print(x)
print(y)
print(xyz)
print(f"name:{name}") # フォーマット文字列
10
0.01
abc
name:山田太郎
リスト
上述の変数は一つの値しか記憶させることができません. 複数の値を記憶させるには リスト を用います.
x = [1, 2, 3, 4, 5]
y = [0.1, 0.3, 0.5]
z = ["a", "b", "c"]
リストに記憶させた値を出力するにはprint関数を持ちます. リストの各要素を取得するには 要素番号 を利用します. 要素番号は 0 から始まることに注意してください.
print(x) # リストxを出力
print(y[0]) # リストyの0番の要素を出力
print(z[1:3]) # リストzの1番から3番までの要素を出力(3番は含まない)
[1, 2, 3, 4, 5]
0.1
['b', 'c']
リストの長さを取得するには len関数 を利用します.
print(len(x))
print(len(y))
print(len(z))
5
3
3
連続した整数のリストを生成するには range関数 を利用します. 生成された値をリストとして用いるには list関数 でリストに変換する必要があることに注意してください(変換しないと range型 と呼ばれるデータ型になる).
x = range(5) # 0から5までの整数のリストを生成(5は含まない)
print(list(x))
y = range(5, 10) # 5から10までの整数のリストを生成(10は含まない)
print(list(y))
[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]
Pythonの制御構文
if文
条件に応じてプログラムを分岐させるには if文 を利用します.
このとき,比較演算子という表現を利用して 条件式 を記述します.
比較演算子の結果はTrue(真)
,または,False(偽)
のいずれかとなります.
比較演算子 | 意味 |
---|---|
x == y | xとyは等しい |
x != y | xとyは異なる |
x > y | xはyより大きい |
x < y | xはyより小さい |
x >= y | xはy以上 |
x <= y | xはy以下 |
x = 10
print(x == 10)
print(x > 5)
print(x > 15)
print(x < 5)
print(x < 15)
True
True
False
False
True
条件式を利用してif文を記述します.
次のコードは,x
が10のときに,「xは10」と出力します.
条件式はx == 10
で表されており,この条件式がTrue
のときだけ:
以降のコードが実行されます.
ここで,:
以降のコードはブロックと呼ばれ,インデント(字下げ)が必要です.
一般的には,インデントは4文字文のスペース(空白)で表しますが,タブ・キー で入力することが可能です.
x
の値を変えて出力結果を確認しましょう.
x = 10
if x == 10:
print("xは10") # インデントが必要
xは10
上記のコードでは,条件式x == 10
がFalse
のときは何も出力されません.
False
のときにも特定の処理を実行するには次のように記述します.
次のコードは,x
が10とは異なるときに,「xは10ではない」と出力します.
x
の値を変えて出力結果を確認しましょう.
x = 5
if x == 10:
print("xは10")
else:
print("xは10ではない")
xは10ではない
for文
特定の処理を繰り返して実行するときは for文 を利用します.
for文ではリストを利用して,繰り返す回数を指定します.
次のコードでは,リスト[0,1,2]
を指定して,繰り返しを実行しています.
このとき,変数i
にはリストから要素が一つずつ取り出されて代入されます.
for i in [0, 1, 2]:
print(i) # インデントが必要
0
1
2
リストの代わりにrange関数を利用することも可能です.
次のコードでは,range関数を利用して,リスト[0,1,2,3,4]
と同じ処理を実行しています.
for i in range(5):
print(i)
0
1
2
3
4
文字列のリストも同様に処理が可能です.
for i in ["a", "b", "c"]:
print(i)
a
b
c
課題
Jupyter Labで作成したノートブックを保存し,ダウンロードして提出してください. ノートブックをダウンロードするには,メニューから Download を選択します. ノートブックのファイル名は chapter1.ipynb としてください.