*目次 [#p72cdfa5]
#contents
*はじめに [#va854f00]
Pythonでデータ分析支援ライブラリーのpandas、機械学習ライブラリーのscikit-learn、実行環境のJupyter Notebookを使ってデータ分析をするときには、サンプル・プログラムを真似するだけで、Pythonのことをあまりよく知らなくてもできます。
しかし、特徴を増やしたり、データを間引いたりするときには、Pythonのことが少しわかっていないとできません。
ここでは、Pythonについて簡単に説明します。
*プログラムの実行 [#hf0c9d21]
Pythonは、インタープリター形式のプログラミング言語です。
Pythonプログラムは、1行ずつ機械語に翻訳され、実行されます。
*プログラムの構造 [#e654ae0a]
Pythonプログラムは、''インデント''でブロックを表します。
同じインデントが続いている間は、同じブロックであると解釈されます。
下の二つのプログラムは、違う結果になります。
#geshi(python){{
x = 0
if x > 0:
print('Yes')
print('OK')
print('A')
print('B')
print('C')
}}
#geshi(txt){{
C
}}
#geshi(python){{
x = 0
if x > 0:
print('Yes')
print('OK')
print('A')
print('B')
print('C')
}}
#geshi(python){{
B
C
}}
*コメント [#e6b50b0b]
ハッシュ記号 # の後からその行の最後までは、コメントとして扱われ、無視されます。
#geshi(python){{
print('Hello') # コメント
}}
複数行をまとめてコメントにするときは、シングル・クオーテーション3つ ''' で囲むか、ダブル・クオーテーション3つ """ で囲みます。
#geshi(python){{
print('Hello')
'''
コメント
コメント
'''
}}
*タプルとリスト [#de275aa8]
複数のデータをまとめて扱うのが''タプル''と''リスト''です。
複数の変数をまとめて扱うのが''タプル''と''リスト''です。
タプルとリストの違いは、タプルが一度生成したら変更できないのに対し、リストは要素の追加や削除ができます。
配列とは違い、型が異なる変数を扱うことができます。
タプルは、複数の要素をコンマ , で区切り、丸括弧 () で囲みます。
#geshi(python){{
t = (1, 2, 3)
tuple = (1, 2, 3)
print(tuple[0])
}}
#geshi(txt){{
1
}}
リストは、角括弧 [] で囲みます。
#geshi(python){{
l = [1, 2, 3]
list = [1, 2, 3]
print(list[0])
}}
#geshi(txt){{
1
}}
*ディクショナリー [#ke10a6f4]
番号でないインデックスを''キー''として指定して''値''にアクセスするデータ構造です。
キーと値をコロン : でつなげて指定し、波括弧 {} で囲みます。
キーと値の組みが複数ある場合は、コンマ , で区切ります。
#geshi(python){{
dict = {'no':1, 'name':'Tohgoroh Matsui'}
print(dict['no'])
}}
#geshi(txt){{
1
}}
*セット [#na63fcbd]
重複した要素が含まれない''集合''です。
要素をコンマ , で区切り、波括弧 {} で囲みます。
#geshi(python){{
set = {1, 2, 3, 2, 1}
print(set)
}}
#geshi(txt){{
{1, 2, 3}
}}
*スライス [#e9d325ce]
タプル、リスト、文字列など、要素に順序があるシーケンスの範囲を指定します。
シーケンスの要素にアクセスするときに使う角括弧 [] の中で、開始位置、終了位置、増分をコロン : で区切って指定します。
開始位置と終了位置だけを指定することもできます。
開始位置を省略すると先頭、終了位置を省略すると末尾として処理されます。
また、負の値を指定すると、末尾からの位置を指定できます。
#geshi(python){{
list = [1, 2, 3, 4, 5]
print(list[2:4])
print(list[:3])
print(list[2:])
print(list[:-1])
}}
#geshi(txt){{
[3, 4]
[1, 2, 3]
[3, 4, 5]
[1, 2, 3, 4]
}}
*if文 [#x9090b56]
条件分岐を行います。
if の後に(空白を入れて)条件を書き、コロン : をつけます。
条件が満たされたときに行う処理を、インデントを一段下げて書きます。
条件が満たされなかったとき、二番目以後の条件を書くには elif を使います。
全ての条件が満たされなかったときを表すには else を使います。
#geshi(python){{
if x == 0:
print('A')
elif x == 1:
print('B')
else:
print('C')
}}
*while文 [#k34d5df6]
繰り返し処理を行います。
while の後に(空白を入れて)条件を書き、コロン : をつけます。
条件が満たされている間繰り返し行う処理を、インデントを一段下げて書きます。
#geshi(python){{
i = 1
sum = 0
while i <= 10:
sum += i
i += 1
print(sum)
}}
*for文 [#f8962643]
反復処理が可能なオブジェクトに対して、繰り返し処理を行います。
for の後に(空白を入れて)変数名を書き、(空白を入れて)in の後に(空白を入れて)反復処理の対象となるオブジェクト名を書き、コロン : をつけます。
繰り返し行う処理を、インデントを一段下げて書きます。
指定したオブジェクトから要素が一つずつ取り出されて、指定した変数に格納されます。
#geshi(python){{
list = [1, 2, 3, 4, 5]
sum = 0
for i in list:
sum += i
print(sum)
}}
*関数 [#ab4b48a3]
関数は、def の後に(空白を入れて)関数名、丸括弧 () の中に引数を , で区切って書き、コロン : をつけます。
関数の中に含まれる処理を、インデントを一段下げて書きます。
引数には初期値を指定することができ、初期値を指定すると、呼び出すときに省略可能なオプションとなります。
戻り値は、return文で指定します。
一度に複数の戻り値を返すことができ、コンマで区切って指定します。
#geshi(python){{
def add(x1, x2, x3=0):
return x1 + x2 + x3
y = add(1, 2)
print(y)
}}
#geshi(python){{
def maxmin(x1, x2):
max = x1 if x1 > x2 else x2
min = x2 if x1 > x2 else x1
return max, min
y1, y2 = maxmin(1, 2)
print(y1, y2)
}}