今日も AIを学ぶ為の本格Python講座 を進めた。
やっぱり数学よりもプログラムのほうがとっつきやすくおもしろい。
■AIを学ぶ為の本格Python講座
PY06_Pythonの基本_処理1
PY07_Pythonの基本_処理2 関数
PY08_Pythonの基本_処理3 例外
PY09_ライブラリ_ライブラリを使う foliumの紹介
PY10_ライブラリ_機械学習で使うライブラリ
今日学んだこと
繰り返し for文
>>> for i in range(0,10):
... print(i)
...
0
1
2
3
4
5
6
7
8
9
>>>
条件分岐 IF文
>>> aaa = False
>>> if aaa == True:
... print('aaaはTrue')
... else:
... print('aaaはFalse')
...
aaaはFalse
>>> aaa = 1
>>> if aaa==1:
... print('aaa=1')
... elif aaa == 2:
... print('aaa=2')
... elif aaa == 3:
... print('aaa=3')
... else:
... print('aaaはそれ以外です')
...
aaa=1
>>> aaa = 'hello satoshi'
>>> if 'satoshi' in aaa:
... print('satoshiが入っている')
... else:
... print('satoshiが入っていない')
...
satoshiが入っている
>>>
関数
>>> def add9(eee):
... return eee+9
...
>>> print(add9(100))
109
>>>
>>> print(add9(91))
100
>>>
>>> def sample(s):
... result=0
... for iii in range(0,3):
... result=s*s*s
... if result >100:
... return '答えは{}。3回かけたら100を超えました。'.format(result)
... else:
... return '答えは{}。3回かけても100以下でした。'.format(result)
...
>>>
>>> print(sample(3))
答えは27。3回かけても100以下でした。
>>>
>>> print(sample(4))
答えは64。3回かけても100以下でした。
>>>
>>> print(sample(4.5))
答えは91.125。3回かけても100以下でした。
>>> print(sample(4.7))
答えは103.82300000000002。3回かけたら100を超えました。
>>>
>>> print(sample(5))
答えは125。3回かけたら100を超えました。
>>>
>>> import pandas as pd
>>> from sklearn import datasets
>>>
>>> iris = datasets.load_iris()
>>> df = pd.DataFrame(iris.data,columns=iris.feature_names)
>>>
>>> df.head()
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2
>>>
例外
問題が発生したときのこと
想定していた動作ではないこと
例外にかかわる処理
try-except 例外が起きた時、プログラムを止めないようにコントロールする。
raise 例外を起こすプログラムの書き方
pass 例外を無視する処理
raise文
>>> raise Exception('エラーを起こす')
Traceback (most recent call last):
File "", line 1, in
Exception: エラーを起こす
>>>
for文でエラーが発生
>>> for iii in range(0,10):
... print(iii)
... if iii==4:
... raise Exception('4のときエラー')
...
0
1
2
3
4
Traceback (most recent call last):
File "", line 4, in
Exception: 4のときエラー
>>>
関数の中でエラーが発生
>>> raise_error()
0
1
2
3
4
Traceback (most recent call last):
File "", line 1, in
File "", line 5, in raise_error
Exception: 4のときエラー
>>>
try-except文
exept:の後で、エラー発生時の処理を記述できる。
>>> def raise_error():
... for iii in range(0,10):
... print(iii)
... if iii==4:
... raise Exception('4のときエラー')
...
>>>
>>> try:
... print('エラーが起こる前')
... raise_error()
... print('エラーが起こった後')
... except:
... print('エラーが起きて終了しました')
...
エラーが起こる前
0
1
2
3
4
エラーが起きて終了しました
>>>
>>>
ライブラリ
pip install folium
⇒地図を扱うライブラリのインストール
import folium
folium.Map(location=[34.75427813283441, 135.19489058752404])
⇒指定した緯度経度の場所の地図を表示する。
これは大阪
foliumのドキュメント(説明サイト)
http://python-visualization.github.io/folium/
ドキュメントは、3段構成となっていることが多い。
・Installing ⇒ライブラリの紹介
・Quickstart ⇒簡単な使い方
・それ以外 ⇒リファレンス。詳細な使い方
機械学習を行うときによく使うライブラリ
・numpy なむぱい
・Pandas ぱんだす
・matplotlib まっとぷろっとりぶ
・seaborn しーぼーん
・scikit-learn さいきっとらーん
深層学習を行うときに使うライブラリで有名なもの
・tensorflow テンソルフローやテンサーフロー
・PyTorch ぱいとーち
numpy なむぱい
行列を扱える
import numpy as np
aaa=np.random.randint(1,10,(4,5))
⇒1から10のランダムな数字で、4行、5列の行列を作成
bbb=np.random.randint(1,10,(5,4))
print(aaa)
np.dot(aaa,bbb) ⇒行列aaa×bbb、aaa.dot(bbb)のような書き方もできる。
⇒
[[2 6 8 3 8]
[6 5 6 1 1]
[3 1 6 7 6]
[5 1 2 2 1]]
array([[173, 155, 90, 153],
[122, 102, 47, 93],
[127, 137, 105, 105],
[ 60, 59, 37, 51]])
[/st-mybox]
Pandas ぱんだす
エクセルのように表形式のデータを取り扱える
irisデータセット
⇒3種類の花について、花の大きさ等の観測データをまとめたもの
i
mport pandas as pd
from sklearn import datasets
iris=datasets.load_iris()
df =pd.DataFrame(iris.data, columns=iris.feature_names)
df.mean() ⇒データの平均値
⇒
sepal length (cm) 5.843333
sepal width (cm) 3.057333
petal length (cm) 3.758000
petal width (cm) 1.199333
dtype: float64
[/st-mybox]
matplotlib まっとぷろっとりぶ
データをグラフ化等の可視化を行う
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
t=np.arange(0.0,2.0,0.01)
s=1+np.sin(2*np.pi*t)
plt.plot(t,s)
seaborn しーぼーん
matplotlibと似ていて、データの可視化を行う。
matplotlibよりデータの処理をうまく扱えるようになっている。
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")
g = sns.PairGrid(iris, hue="species")
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)
g.add_legend()
■scikit-learn さいきっと・らーん
機械学習を行うためのライブラリ。
実際のデータに対して訓練できる。
from sklearn import linear_model
reg =linear_model.LinearRegression()
reg.fit([[0,0],[1,1],[2,2]],[0,1,2])
reg.predict([[3.2,2.8]])
⇒
array([3.])
勉強時間
今日: 1.5時間
総勉強時間: 30時間
お得キャンペーンの紹介
ラビットチャレンジの
Amazonギフト券「5,000円」プレゼントキャンペーンのお知らせ
申込時に、以下コードを使えば、入会金が5000円引かれるようです。
また、紹介した僕にも5000円のAmazonギフト券が送られるようです。
お得なので、よかったら申込時お使いください。
紹介コード:friend0019697
※本キャンペーンの期間は、 2021年9月15日~10月31日 です。
「お友達紹介キャンペーン」特設ページ:
https://ai99