【Python・機械学習初心者向け】Numpyチュートリアル

Python
スポンサーリンク

みなさん、こんにちは!ぶたキムチです。

今回は、機械学習プログラミングで頻繁に使用されるNumpyの使い方について紹介していきます。Numpyの配列クラスには便利なメソッドが多く用意されているため、ディープラーニング実装においても頻繁に使用されます。

今日紹介するNumpyの使い方は、これからディープラーニング等でも使用されることが多いので、是非Numpyの使い方はマスターしておくといいでしょう。

1.Numpyのインポート

Numpyは外部ライブラリですので、importをしてあげましょう。

asを伴うimport文の意味は、「numpyをas以降に表示しているnpとして読み込んでください。」です。

このように書いて、これ以降はnumpyに関するメソッドはnpとして参照することができます。

 

2.Numpy配列の算術計算

では、まずNumpyで配列を作って計算をしてみましょう。

まず配列aと配列bを作成しました。それぞれのclassを調べてみると、numpy.ndarrayでnumpy配列を作成できていることがわかります。

次にnumpy配列の算術計算をしていきます。

ここで注意するべき点は、配列aと配列bが同じ要素数ということです。両者とも要素数が3の1次元配列です。Numpyの算術計算は各要素に対して行われるため、要素数が異なる場合はエラーが出てしまいます。

ちなみに、単一の値(スカラー値)を用いて計算することもできます。これをブロードキャスト機能といい、後ほど説明します。

 

2.NumpyのN次元配列

Numpyは1次元配列だけでなく、多次元配列も作成することができます。

まず2×2の配列を作成しました。shape関数で配列の大きさを確認すると、(2,2)の配列になっていますね。また配列に入っている要素のデータ型も確認してみましょう。確認するには、dtype関数で調べることができます。

 

では同じく多次元配列の算術計算をみていきましょう。

まずc配列と同じ大きさのd配列作成しました。多次元配列の算術をみると、要素ごとに計算されていることがわかります。

 

3.ブロードキャスト

先ほど、Numpyでは配列の算術演算において、要素が異なる場合にはエラーが出てしまうとお伝えしました。しかし、Numpyには配列とスカラ値の計算を行う機能が備わっています。

まずは以下の配列の計算を実行してみましょう。

c配列に10というスカラ値 の掛け合わせを行いました。2×2配列に対して単一の数字で計算をする場合、スカラ値は2×2の配列に自身を拡大し計算を実行します。この機能をブロードキャスト(broadcast)と言います。

以下にブロードキャストのイメージを記載します。

※10が2×2の行列として扱われます。

 

ではブロードキャストの例を、もう一例見てみましょう。

orig配列はshape関数を使用すると2×2の配列、broad配列はshape関数を使用すると2×1 の配列となっています。この配列同士の積を計算すると、適宜配列を拡張してくれるブロードキャスト機能が働きます。

イメージはこんな感じ。

 

ではもう一例。

もうブロードキャスト機能については理解できましたかね。ここで注目してほしいことは、配列を拡張し大きさを合わせる際には、行方向への拡張がされていることがわかります。

4.配列の要素へアクセス

作成した配列にアクセスする方法を紹介します。

要素のアクセスは0から始まります。ちなみに、for文を使用して要素にアクセス可能です。

 

またNumpyは配列によって各要素にアクセスすることも可能です。

flatten関数は、配列を1次元配列にする関数です。そして np.array([0,2,4])という配列で、X配列の0、2、4番目の要素にアクセスをします。

次に、条件を満たす要素にアクセスすることもできます。

 

5.様々な配列を作ってみる

arange()を使用する

 

linspace()関数を使用

 

random関数を使用して乱数発生

 

reshape()関数で配列のサイズを変更

※reshapeは便利なので覚えておくと便利です。

またtranspose関数を使用すると配列の転置をすることができます。

w.transposeでもw.Tでもどちらでもいい実行可能です。

 

6.最後に

今回、紹介した内容はこの参考書を使用しました。お金の余裕がある方は実際に買って読破するのもありです。ネットでも十分ですが。

入門 Python 3

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

少し長くなってしまいましたが、Numpyの使い方を紹介しました。機械学習プログラミングが盛んになってきているので、Numpyはスラスラと使うことができるようにマスターしておくべきです。

どんどん、練習して使いこなせるようになりましよう。

最後まで見てくれてありがとうございます。

コメント

タイトルとURLをコピーしました