Pythonでデータ分析する次の一歩(プログラミング言語、Python編)

| Topic path: Top / 機械学習 / Pythonでデータ分析する次の一歩(プログラミング言語、Python編)

*目次 [#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)
}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS