Pythonの基本

授業目的と学習方法

この授業では,ビジネスや日常生活における意思決定の場面において, 論理的に問題を捉えて最適な行動を選択できるようになるために, 統計に基づくデータサイエンスのスキルを学ぶことを目的とします. 近年は高速な計算機(PC)を用いて,多種多様なデータを大量に分析することが可能になり, データサイエンス が一つの学問として注目される様になりました. 本授業を履修した学生には,この授業で学んだデータサイエンスのスキルをレポートや卒業論文で活かすことはもちろん, 世の中に存在する社会課題の解決手段として応用することを期待しています.

データ分析のためのツールとして,次のソフトウェアを利用します. Excel は分析対象のデータの概要を把握するために用い, Jupyter LabPythonで実装されたデータ分析手法を適用するために用います. 多くの学生はExcelの利用経験があると思いますが,Pythonによるプログラミングは初めてかもしれません. この授業では,実際にデータに触れながら,Pythonの使い方に関しても学習してもらいます.

Jupyter Lab

Pythonのプログラム開発にはJupyter Labを利用します. Jupyter Labは,ChromeやEdgeなどのブラウザで動作するウェブ・アプリケーションです. 公式サイトが公開しているオンラインの体験版の利用も可能ですが, ローカルのPCにインストールして利用する方が良いでしょう(大学のPCにインストールされています). Jupyter Labを起動して,Python 3 のノートブックを開きましょう. 最初にノートブックに名前を付けて保存します. ここでは,chapter1.ipynbという名前に設定しましょう.

Image from Gyazo

Jupyter Labは,セル と呼ばれるテキストフィールドにプログラムを入力する仕組みになっています. セルに次のコードを入力してみましょう.

# 加算をするプログラム
1+2

コードを入力したら,Runボタン をクリックしましょう([Shift]+[Enter] でもOK). するとプログラムが実行され,その結果3が表示されます.

Image from Gyazo

このように,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 == 10Falseのときは何も出力されません. 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 としてください.

Image from Gyazo

参考書籍

愛知県名古屋市にある椙山女学園大学 文化情報学部 向研究室の公式サイトです. 専門は情報科学であり,人工知能やデータベースなどの技術要素を指導しています. この公式サイトでは,授業で使用している教材を公開すると共に, ベールに包まれた女子大教員のミステリアスな日常を4コマ漫画でお伝えしていきます. サイトに関するご意見やご質問はFacebookまたはTwitterでお問い合わせください.