深層学習に必須!numpyがあれば数学も怖くない!numpy学習第1回

深層学習に必須!numpyがあれば数学も怖くない!numpy学習第1回

最近職場の前にある電話ボックスが

衝撃的な事件現場のようになっているのを発見し

真夜中に「爆発系」と「電話を掛けた先に瞬間移動できる」の能力者によるギリッギリの異能バトルが繰り広げられていたんじゃないかと気が気じゃないアイーンです。

後者は携帯電話を持てばいいと思います。

 

さて今回は、深層学習で利用する

それどころか無くてはならない重要なツール

numpy(ナムパイ)を勉強していきたいと思います。

それでは行ってみましょう

 

numpyってなんで必要なの?

numpyとは、Pythonにおいて数値計算を効率的に行うために必要不可欠な粋なヤツです。

型付きの多次元配列を使えるようになります。

例えばベクトルや行列という、意味不明な数学の何かを自由に扱えるようになるために必要なツールです。

分からない人も、今は考えずにゆる~く行きましょう。

また、事前に準備された大量の関数が魅力です。

わざわざ自分でコードを書かなくても

データの並べ替えやシグモイド関数が1行のコードで使えます。

numpyを覚えれば、光の速さで深層学習を理解できるようになります。

 

numpyの使い方

まずはお好きな開発環境で、Python3の記述を始めましょう。

次にこのコードを書きます。

これは「numpyをnpと省略して、このスクリプトで使用します」

という宣言です。

これがないと、numpyが使えません。

as np の部分が「省略して使うよ」という宣言です。

これがあれば、いちいちnumpy.array(numpyの配列を作る)のとき

np.arrayと省略して書けるんです。めっちゃ便利。

 

 

早速配列を作ります。

a = np.array( [ ] )と書くことで、numpyのリストが作成されます。

Pythonのリストと違いを見ると

,(カンマ)が入ってますね。見た目にはそれだけです。

ですが、このnumpyリストは、Pythonリストにない特殊なパワーがあります。

numpyリストを2つ作って足し算してみると

このように、1行目は1行目、2行目は2行目に対応しており

これにより簡単にベクトルや行列の計算を行えるようになるんです。

ちなみに

 

ベクトルとは

[1 2 3] 

のような形で

 

行列とは

[1 4]

[2 5]

[3 6]

のような形(これは3行2列)

今回は出てきませんが

ベクトルと行列の計算ではスカラーというものも出てきます。

スカラーの形は 

と普通の数字みたいです。

できれば丁重にお断りしたいですが、いずれ使う日も来るかもしれませんので覚えておけば幸せになれます。

 

他にも簡単にリストを作る方法として

np.arange( )があります。

 

これを使えば、0から5個のリストを作ることが出来ます。

np.arange( 2 , 10)と入力すると

[ 2  3  4  5  6  7  8  9 ]

と、2から始まる配列を10-1まで作ることができます。

後ろを10と入力すると10-1個作成されるのは、Pythonと同じですね。

 

また、多重リストも簡単に作れます。

.reshape()メソッドを使うとこういう結果になります。

.reshape( 2 , 4 )と入力すれば「2行4列」のリストが出来ます。

.reshape( 4 , 2 )と逆にすれば

「4行2列」が出来ます。

 

そして

.reshape( 2 , 3 , 2 )と入力すると

このように、2つの「3行2列」を作成できます。

 

さて、ここまでくれば貴方の肩書は

「numpy小学校卒業」です。

上司に「numpy小卒の○○です」と名乗ってみてください。

学歴を疑われます。

 

今回はこれまで。

それでは。