深層学習の教科書 {進捗}
AIを開発されている大先輩からこの書籍を紹介していただきましたので、【 深層学習の教科書 {進捗} 】として、やったことの記録をしていきます。
「さて、今日も1ページだけ進めよう(^^)/」
【
Pyhonで動かして学ぶ 深層学習の教科書 】オススメ★
第1章~第8章
(2019年?月?日~2020年2月10日)
第1章~第8章復習
(2019年2月11日~2020年2月22日)
8.1Pandas
8.1.1Pandasとは文字列データも簡単に扱うことのできるライブラリ。Series(1次元配列),DataFrame(2次元配列)インデックス(行ラベル)、カラム(列ラベル)
8.1.2Seriesでは辞書型を渡すと昇順でソートされる。
8.2Series
8.2.1Series生成 | pandas.Series(辞書型のリスト)、pd.Series(データ配列,index=インデックス配列) |
8.2.2参照 | series[〇:〇]リストのスライス同様。series[[“インデックス値”]] |
8.2.3データ取り出し | series.valuesデータの値参照、series.indexインデックス参照 |
8.2.4要素追加 | seies.append(Series型の要素) 要素作成後入れるorSeries要素として入れる |
8.2.5要素削除 | series.drop(“インデックス”) |
8.2.6フィルタリング | bool型のシーケンス指定でTrueだけ抽出。条件式(==,>,<)でbool型シーケンス取得。series[ ][ ]複数条件 |
8.2.7ソート | series.sort_index()インデックスソート、series.sort_values()データソート、ascending=Falseで降順 |
8.3DataFrame
8.3.1DataFrame生成 | pd.DataFrame([Series,Series,…])Seriesの束、pd.DataFrame(リスト型を持った辞書型) |
8.3.2インデックスカラム設定 | df.index=[“name1″,”name2”]リストを入れる。df.columns=リスト(配列) |
8.3.3行追加 | df.append(“Series型のデータ”,ignore_index=True) |
8.3.4列追加 | df[“新しいカラム”]にSeriesもしくはリストを代入 |
8.3.5データの参照 | locは名前参照、ilocは番号参照 |
8.3.6名前参照 | df.loc[“インデックスのリスト”,”カラムのリスト”] range(,) |
8.3.7番号参照 | df.iloc[“行番号のリスト”,”列番号のリスト”] |
8.3.8行・列削除 | df.drop() インデックス・カラムを指定、df.drop(○○,axis=1)で列削除 |
8.3.9ソート | df.sort_values(by=”カラムもしくはカラムのリスト”,ascending=True) |
8.3.10フィルタリング | bool型のシーケンス指定でTrueだけ抽出。条件式(==,>,<)でbool型シーケンス取得。series[ ][ ]複数条件 |
9.1DataFrameの連結・結合
9.9.1連結 | 一定の方向にそのままつなげる操作 |
結合 | 特定のKeyを参照してつなげる操作 |
9.2DataFrameの連結
9.2.1インデックス、カラム一致の連結 | pandas.concat(“DataFrameのリスト”,axis=0)axis=0で縦方向、1で横方向 |
9.2.2インデックス、カラム不一致の連結 | NaNを持つセルが作成される |
9.2.3ラベルの重複”X””Y”のカラムが追加 | Multiindexとなるdf[“X”]、df[“X”,”apple”]で参照 |
9.3DataFrameの結合
9.3.2内部結合 | pandas.merge(df1,df2,on=Keyとなるカラム,how=”inner”) |
9.3.3外部結合 | pandas.merge(df1,df2,on=Keyとなるカラム,how=”outer”) |
9.3.4別名のKey結合 | pandas.merge(左df,右df,left_on=”左カラム”,right_on=”右カラム”,how=”結合方法”) |
9.3.5インデックスKey結合 | pandas.merge(左df,右df,left_index=True,right_index=True,how=”結合方法”) |
(2020年2月25日)
9.4DataFrameを用いたデータ分析
9.4.1一部の行取得 | df.head()で冒頭5行取得 df.tail()で末尾5行 (”行数”) |
9.4.2計算処理 | Pandasでも「+ – * / % **」の計算可能 Numpyと相性◎ |
9.4.3要約統計量 | df.describe()で列ごとの個数、平均値、標準偏差、最小値、四分位数、最大値が得られる |
9.4.4行間列間の差 | df.diff(“行or列の間隔”,axis=”方向”)で差を計算したDataFrameが作成 |
9.4.5グループ化 | df.groupby(“カラム”)でグループ化。直接表示不可。平均や和の演算可。 |
(2020年2月26日)
添削問題&総合添削問題
(2020年2月27日・28日)
10.1様々なグラフ
10.1.1折れ線グラフ、10.1.2棒グラフ、10.1.3ヒストグラム、10.1.4散布図、10.1.5円グラフ
(2020年2月29日)
10.2乱数の発生&ヒストグラム表示
10.2.1シード設定 | numpy.random.seed(整数) 乱数の固定 |
一様乱数生成 | numpy.random.rand(整数) 生成数 |
10.2.2正規分布乱数生成 | numpy.random.randn(整数) 生成数 |
ヒストグラム表示 | plt.hist(x,bins=’auto’)xにデータ、binsは棒グラフの本数、plt.show() |
plt.title(‘グラフタイトル’)タイトル挿入、plt.grid(True or False)グリッド挿入 | |
10.2.3二項分布乱数生成 | numpy.random.binomial(整数n,実数p,size=整数値) 成功率pの試行をn回やった時の成功数をsize個出力 |
10.2.4リストからランダム選択 | numpy.random.choice(リストx,整数値n) リストからランダムにn個返す |
(2020年2月29日)
10.3時系列データ
10.3.1datetime型 | datetime.datetime(年,月,日,時,分,秒,ミリ秒)日付や時刻 |
10.3.2timedelta型 | detetime.timedelta(日,秒)時間の長さを表すデータ型 |
10.3.3datetimeとtimedelraの演算 | 足し引きが可能。timedelta型は整数倍、timedelta型同士で演算可 |
10.3.4datetimeオブジェクト作成 | detetime.datetime.strptime(s,”&Y-%m-%d %H-%M-%S”)フォーマット指定 |
(2020年3月1日)
10.4データの操作
10.4.1文字→数字の型変換 | int()、flort()で数値型に変換 |
10.4.2等間隔の数列生成① | numpy.arange(始まりの値,終わりの値,間隔の値)※終わりの直前まで |
10.4.3等間隔の数列生成② | numpy.linspace(始まりの値,終わりの値,分割したい個数)分割 |
(2020年3月2日)
添削問題
(2020年3月2日)
第11章 matplotlibの使い方
11.11種類のデータ可視化
11.1.1グラフにデータをプロット | matplotlib.pyplot.plot(x軸に対応するデータ,y軸に対応するデータ) matplotlib.pyplot.show()画面上に表示 %matplotlib inline JupyterNotebookではこれで可視化 |
11.1.2表示範囲設定 | matplotlib.pyplot.xlim([0,10])xの範囲指定、.ylim(“範囲”)yの範囲指定 |
11.1.3要素に名前設定 | matplotlib.pyplot.title(“タイトル”)、.xlabel(“x軸の名前”)、.ylabel(“y軸の名前”) |
11.1.4グリッド表示 | matplotlib.pyplot.grid(True) |
11.1.5軸にメモリを設定 | matplotlib.pyplot.xticks(目盛りを操縦する位置,挿入する目盛り) |
(2020年3月3日)
11.2複数データの可視化①
11.2.12種類のデータプロット | matplotlib.pyplot.plot(x,y,color=”色指定”)#ffffff b:青,g:緑,r:赤,c:シアン,m:マゼンタ,y:黄色,k:黒,w:白 |
11.2.2系列ラベル設定 | matplotlib.pyplot.legend([“ラベル名1”,”ラベル名2”,…]) matplotlib.pyplot.plot(x,y,color=”色指定”,label=”ラベル名”) |
(2020年3月4日)
11.3複数データの可視化②
11.3.1図の大きさ設定 | matplotlib.pyplot.figure(figsize=(横の大きさ,縦の大きさ))インチ |
11.3.2サブプロット作成 | fig=matplotlib.pyplot.figure(4,4) fig.add_subplot(2,3,5) |
11.3.3サブまわり余白調整 | matplotlib.pyplot.subplots_adjust(wspace=横間隔割合,hspace=縦間隔割合) |
11.3.4サブ内グラフ表示範囲設定 | x軸の表示範囲を設定:ax.set_xlim(範囲) y軸の表示範囲を設定:ax.set_ylim(範囲) |
11.3.5サブ内グラフ名前設定 | グラフのタイトルを設定:ax.set_title(“タイトル”) x軸の名前を設定:ax.set_xlabel(“x軸の名前”) y軸の名前を設定:ax.set_ylabel(“y軸の名前”) |
11.3.6サブ内グラフグリッド表示 | ax.grid(True) |
11.3.7サブ内グラフ目盛り設定 | ax.set_xticks(“挿入位置のリスト”) ax.set_xticklabels(“目盛りのリスト”) |
(2020年3月4日)
添削問題
(2020年3月5日)
第12章 様々なグラフを作る
12.1折れ線グラフ
12.1.1マーカーの種類と色設定 | matplot.lib.pyplot.plot()折れ線グラフ描画 marker=”指定子”マーカーの種類設定 ”o”円,”s”四角,”p”五角形,”*”星,”+”プラス,”D”ダイヤモンド markerfacecolor=”指定子” ”b”青,”g”緑,”r”赤,”c”シアン,”m”マゼンタ,”y”黄,”k”黒,”w”白 |
12.1.2線のスタイルと色設定 | linestyle=”指定子”線のスタイルを指定 ”-“実践,”–“破線,”-.”破線(点入り),”:”点線 color=”指定子” ”b”青,”g”緑,”r”赤,”c”シアン,”m”マゼンタ,”y”黄,”k”黒,”w”白 |
(2020年3月6日)
12.2棒グラフ
12.2.1棒グラフ作成 | matplot.lib.pyplot.bar()棒グラフ描画 |
12.2.2横軸にラベル設定 | matplot.lib.pyplot.bar()にtick_labelラベルが入っているリストを渡す |
12.2.3積み上げ棒グラフ作成 | matplot.lib.pyplot.bar()のbottomデータ列を渡す |
(2020年3月6日)
12.3ヒストグラム
12.3.1ヒストグラムを作成 | matplotlib.pyplot.hist()ヒストグラム作成 |
12.3.2ビン数を設定 | .hist()の中に、binsを指定。bins=”auto”で自動設定 |
12.3.3正規化 | .hist()の中に、normed=True ※normedは廃止され、densityに置き換えされたとエラーが出る |
12.3.4累積ヒストグラム作成 | .hist()の中に、cumulative=Trueを指定。 |
(2020年3月7日)
12.4散布図
12.4.1散布図を作成 | matplot.pyplot.scatter()散布図作成、x軸・y軸に対応するデータを渡す |
12.4.2マーカーの種類と色設定 | marker=”指定子” ”o”円,”s”四角,”p”五角形,”*”星,”+”プラス,”D”ダイヤモンド color=”指定子” ”b”青,”g”緑,”r”赤,”c”シアン,”m”マゼンタ,”y”黄,”k”黒,”w”白 |
12.4.3マーカーの大きさ設定 | .scatter()の中に、s=データを渡す |
12.4.4マーカーの濃さ設定 | .scatter()の中に、c=濃さに対応するデータ(リスト)cmap=”色系統”で系統を設定 色系統指定子”Reds”赤,”Blues”青,”Greens”緑,”Purples”紫 |
12.4.5カラーバー表示 | matplotlib.pyplot.colorbar()カラーバーを表示 |
(2020年3月7日)
12.5円グラフ
12.5.1円グラフを作成 | matplotlib.pyplot.pie()円グラフ作成、matplotlib.pyplot.axis(“equal”)で真円 |
12.5.2円グラフにラベルを設定 | matplotlib.pyplot.pie(渡されたデータ,labels=ラベル用のリスト)ラベルを付与 |
12.5.3特定の要素を目立たせる | matplotlib.pyplot.pie()にexplodeとして渡して任意の要素を目立たせる |
(2020年3月8日)
12.6 3Dグラフ
12.6.13DAxesを作成 | matplotlib.figure().add_subplot(1,1,1,projection=”3d”)3D描画機能を持ったサブプロット作成 np.meshgrid(t,t)、np.sqrt() |
12.6.2曲面を作成 | ax.plot_surface(X,Y,Z)x軸、y軸、z軸に対応するデータを渡し、局面を描画 |
12.6.33Dヒストグラムを作成 | ax.bar3d(xpos,ypos,zpos,dx,dy,dz)x軸、y軸、z軸の位置と変化量に対応するデータを渡す np.zeros(10)、np.ones(10) |
12.6.43D散布図を作成 | scatter3D()x軸、y軸、z軸に対応するデータを渡し、3次元散布図を作成 渡すデータは1次元でなければならないnp.ravel()で変換の必要も |
12.6.53Dグラフにカラーマップを適用 | cmをimportしデータとともにcmap=cm.coolwarmを引数として渡す |
(2020年3月8日)
添削問題
(2020年3月9日)
総合添削問題
(2020年3月9日)
第13章 lambdaやmapなどのPython記法
13.1lambda式の基礎
13.1.1無名関数の作成 | 変数=lambda(引数):(返り値) def 変数(引数): return 返り値 と同じ |
13.1.2lambdaによる計算 | 変数=lambda(引数1,引数2,…):(返り値)多変数 print((lambda x,y:x+y)(3,5))のように変数がなくてもOK |
13.1.3ifを用いたlambda | 変数=条件を満たす時の処理 if 条件 else 条件を満たさない時の処理 |
(2020年3月16日)
13.2便利な記法
13.2.1listの分割(split) | 切り分けたい文字列.split(“区切る記号”,区切る回数) |
13.2.2listの分割(re.split) | re.split(“[区切る記号]”,区切りたい文字列) 一度に複数の記号で文字列を切り分けるモジュール |
13.2.3高階関数(map) | 他の関数を引数とする関数 #イテレータ(計算の方法を格納)を返す 計算はしない map(適用したい関数,配列) #listに格納する方法 list(map(関数,配列)) |
13.2.4filter | #イテレータ filter(条件となる関数,配列) lambda x: x>0のように入力 #listに格納 list(filter(関数,配列)) |
13.2.5sorted | #キーを設定してソート sorted(ソートしたい配列,key=キーとなる関数,reverse=True または False) reverse=Trueで降順 lambda x: x[n] 第n要素を昇順にソート |
イテレータ:複数の要素を順番に取り出す機能を持ったクラス。
(2020年3月16日)
13.3リスト内包表記
13.3.1リストの生成 | [適用したい関数(要素) for 要素 in 適用する元の配列] |
13.3.2if文を用いたループ | [適用したい関数(要素) for 要素 in フィルタリングしたい配列 if 条件] 条件を満たす要素を取り出すだけなら”適用したい関数”を省く |
13.3.3複数配列の同時ループ | zip() 例 for x,y in zip(a,b): |
13.3.4多重ループ | for文を2回並べて書くと二重ループになる |
(2020年3月日)
13.4辞書オブジェクト
13.4.1defaultdict | |
13.4.2value内の要素の追加 | |
13.4.3Counter |
(2020年3月日)
添削問題
(2020年3月日)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
【
Pyhonで動かして学ぶ 深層学習の教科書 】オススメ★
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Enjoy trading life ?