脳汁ドバドバどーぱみんっ

ちっぽけな青年による稚拙な文言

『現場で使える!NumPyデータ処理入門』感想

社会の荒波に揉まれたせいでだいぶ更新してませんでしたが、新年になったことだし記事書きます。

 

今回は表題にある通りNumPyについての本の感想です。

 

現場で使える! NumPyデータ処理入門 機械学習・データサイエンスで役立つ高速処理手法 (AI & TECHNOLOGY)

現場で使える! NumPyデータ処理入門 機械学習・データサイエンスで役立つ高速処理手法 (AI & TECHNOLOGY)

 

 

そもそも僕は文系でプログラミングはPythonとR、Rubyを少しかじっている程度何ですけど最近深層学習とWebスクレイピングに関心を持ち始めた影響でこの本を読みました。)

この本、元々はDeepAgeという機械学習を学ぶプラットフォームみたいなやつの記事をまとめたやつ?(詳しくは知りません)で一応内容をWeb上で閲覧できるみたいなんですが僕は圧倒的紙媒体派なんで本で読みました。

目次は以下の通り

Chapter 1 NumPyの基本
 1.1 NumPyの基本とインストール方法
 1.2 多次元データ構造ndarrayの基礎
 1.3 ブロードキャスト
 1.4 スライシング
 1.5 軸(axis)と次元数(ndim)について
 1.6 ndarrayの属性(attribute)shape
 1.7 要素のデータ型(dtype)の種類と指定方法
 1.8 コピー(copy)とビュー(view)の違い

Chapter 2 NumPy配列を操作する関数を知る
 2.1 配列を形状変換するreshape
 2.2 配列末尾へ要素を追加するappend
 2.3 配列の真偽判定に役立つallとany
 2.4 条件を満たす要素のインデックスを取得するwhere
 2.5 最大値、最小値を抜き出すamax、maxとamin、min
 2.6 配列の最大要素のインデックスを返すargmax
 2.7 配列の軸の順序を入れ替えるtranspose
 2.8 ソートをするsortとargsort
 2.9 配列同士を連結する、NumPyのvstackとhstackの使い方
 2.10 データを可視化するmatplotlibの使い方
 2.11 要素がゼロの配列を生成する関数のまとめ
 2.12 要素が1の配列を生成するones
 2.13 連番や等差数列を生成するarange
 2.14 線形に等間隔な数列を生成するlinspace
 2.15 単位行列を生成するeyeとidentity
 2.16 未初期化の配列を生成するempty
 2.17 randomモジュールを使った配列操作・乱数生成方法
 2.18 配列を1次元に変換するflatten
 2.19 loadtxtとsavetxtを使ってテキストファイルを読み書きする
 2.20 配列データをそのまま読み書きするloadとsave
 2.21 bufferをndarrayに高速変換するfrombuffer
 2.22 非ゼロ要素を抽出するnonzero
 2.23 flattenよりも高速に配列を1次元化するravel
 2.24 配列をタイル状に並べるtile
 2.25 新しく配列に次元を追加するnp.newaxisオブジェクト
 2.26 要素の差分と足し合わせを計算するdiffとcumsum
 2.27 多次元配列の結合を行うnp.c_とnp.r_オブジェクト

Chapter 3 NumPyの数学関数を使う
 3.1 NumPyの数学関数・定数のまとめ
 3.2 要素の平均を求めるaverageとmean
 3.3 要素の中央値を計算するmedian
 3.4 要素の和を求めるsum
 3.5 標準偏差を計算するstd
 3.6 分散を求めるvar
 3.7 共分散を求めるcov
 3.8 相関係数を求めるcorrcoef
 3.9 配列の要素から格子列を生成するmeshgrid
 3.10 内積を計算するdot
 3.11 行列式を求めるlinalg.det
 3.12 行列の固有値固有ベクトルを求めるlinalg.eig
 3.13 行列の階数(ランク)を求めるrank
 3.14 逆行列を求めるinv
 3.15 直積を求めるouter
 3.16 外積を求めるcross
 3.17 畳み込み積分移動平均を求めるconvolve

Chapter 4 NumPyで機械学習を実装する
 4.1 配列の正規化(normalize)、標準化をする方法
 4.2 線形回帰をNumPyで実装する
 4.3 NumPyでニューラルネットワークを実装する:基本編
 4.4 NumPyでニューラルネットワークを実装する:理論編
 4.5 NumPyでニューラルネットワークを実装する:実装編
 4.6 NumPyでニューラルネットワークを実装する:多層化と誤差逆伝播法編
 4.7 NumPyでニューラルネットワークを実装する:文字認識編
 4.8 NumPyで強化学習を実装する

Pythonの文法をある程度わかっている人向けにNumPyの基本操作を学んだ後実際に機械学習を実装してみようという流れ

 

で、よんでみてどうかというとこの本は辞書的に使うのが一番かなと思いました。

NumPyの各関数の説明は引数になにを取れて実際どいういう挙動をするのか例が豊富で大変わかりやすかったです。さすが人気コンテンツ。

けど機械学習の方はコードがばーーーとあって説明が粗雑なせいでなかなかいいとは言えないものでした。。。まあ限られた紙面でアルゴリズムとか数学的説明を入れるのは厳しいと思うので仕方ないですが。

 

あと個人的に何ですが、matplotlibをうまくつかいこなせるとNumPyの勉強がかなり楽しくなる気がします。綺麗にグラフ作れると気分もいいですし。

今回の本とは関係ないですがJupyter実践入門という本がmatplotlibの使い方が非常にわかりやすくていいなと思ってます。その内容を使ってファイナンスについての↓の本読んでたら相乗効果ですごく身についたんで

 

 

PythonユーザのためのJupyter[実践]入門

PythonユーザのためのJupyter[実践]入門

 

 

Pythonによる ファイナンス入門 (実践Pythonライブラリー)

Pythonによる ファイナンス入門 (実践Pythonライブラリー)

 

 

 

これからも頑張って機械学習勉強するぞ.....