Pythonを用いた機械学習1日目
前回、AnacondaをインストールしPython環境を整えた。 Pythonのバージョンはx2とx3があったが、x2は2020年にサポートが終了するため、x3を選択しインストールした。ここで気をつけなければいけないのは、x2とx3で互換性がないところだ。
さて、以下に今回の学習内容をまとめていく。
1.Pythonにおける基本計算
>>> 2 + 3
5
>>> 5 -2
3
>>> 3 * 4
12
>>> 13 // 2
6
>>> 13 / 2
6.5
>>> 11 % 3
2
>>> 2 ** 3
8
・Python x3では、割り算方法が2種類ある。
・「//」は商を整数、「/」は浮動小数点
・「%」は割り算のあまり
・「**」は累乗
また、演算の優先順位は一般的な数学と同じ。
小数点の計算
>>> 2.5 * 1.2
3.0
>>> 2.3 * 3.4
7.819999999999999
>>>
・小数も扱えるが、二進数で扱うため、精度には注意が必要
複素数を含む計算
>>> 1.2 + 3.4j
(1.2+3.4j)
>>> (1.2 + 3.4j) * 2
(2.4+6.8j)
>>> 1.2 + 3.4j + 2.3 + 4.5j
(3.5+7.9j)
>>> (1 + 2j) * (1 - 2j)
(5+0j)
>>>
・複素数型が用意されており、数学では虚数を「i」で表現するが、Pythonでは「j」を用いる。
データの型を調べる「type」関数
>>> type(3)
<class 'int'>
>>> type(3.5)
<class 'float'>
>>> type(2 + 3j)
<class 'complex'>
>>> type('abc')
<class 'str'>
>>>
・「int」整数型
・「float」浮動小数点型
・「complex」複素数型
・「str」文字列型
2.変数
計算に変数を使うことができる。変数名にはアルファベットと数字、アンダーバーが使える。大文字と小文字は区別される。ただし、1文字目はアルファベットかアンダーバー、2文字目は英数字かアンダーバーを使用する。
>>> x = 10 #変数「x」に10を代入
>>> print(x) #変数「x」の内容を出力する
10
>>> y = 2 * 3 + 4 * 5 #変数「y」に「2 * 3 + 4 * 5」の結果を代入する
>>> print(y) #変数「y」の内容を出力する
26
>>> x + y #変数「x」の内容と変数「y」の内容を加算する
36
>>>
・コメントアウトは「#」
3.リスト(配列)
リストの型に制約はなく、異なる型でも同じリストに格納できる。リストの添字は、他プログラム言語同様にa[0],a[1],・・・のように0(ゼロ)から始まる。
>>> a = [3, 1, 4, 2, 5] #リストを作成し、変数「a」に代入する
>>> len(a) #変数「a」のリストの長さを取得する
5
>>> a[0] #リストの先頭の要素を取得する
3
>>> a[3] #リストの4番目の要素を取得する
2
>>> a[-1] #リストの最後の要素を取得する
5
>>> b = [1, 2.0, 3 + 4j , "abc" , [-1, 1]]
>>> b
[1, 2.0, (3+4j), 'abc', [-1, 1]]
>>>
・リストの最後の要素は引数に「-1」を指定してあげる
>>> a = [3, 1, 4, 2, 5] #リストを作成し、変数「a」に代入する
>>> a [1:3] #2番目から3番目の要素を取得
[1, 4]
>>> a [2:] #3番目以降の要素を取得
[4, 2, 5]
>>> a [:3] #3番目までの要素を取得
[3, 1, 4]
>>> a [:-3] #後ろから4番目までの要素を取得
[3, 1]
>>>
・「:」で連続する要素をまとめて取得することもできる(「:」の後に指定した位置は含まない)
4.タプル
リストは[]で囲うのに対して、タプルは()で囲う。
>>> # リスト
>>> list_data = [1, 2, 3, 4, 5]
>>> len(list_data)
5
>>> # タプル
>>> tuple_data = (1, 2, 3, 4, 5)
>>> len(tuple_data)
5
>>> type(list_data)
<class 'list'>
>>> type(tuple_data)
<class 'tuple'>
>>>
リストと違うのは、リストは要素を追加することができるが、タプルは一度作成すると要素を追加できないことである。削除も変更もできない。
list_data[2] = 10 #リストの場合は書き換え可能
>>> list_data
[1, 2, 10, 4, 5]
>>> tuple_data[2] = 10 #タプルの場合はエラーが発生
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'taple_data' is not defined
>>>
・タプルを使うと処理が若干高速になる
・間違えてデータを書き換える心配がない
次回、Pythonを用いた機械学習2日目はこちらからどうぞ。
よろしければサポートお願いします。いただいたサポートを皆さんに還元していきたいと思っております。