見出し画像

第6話 NumPyを学ぶ -ディープラーニングで多用する関数 sum,max,argmax,where-

AI(ディープラーニング)のプログラムを作るべく奮闘しています。
そして今はNumPyというPythonの拡張モジュール(ツール)について学習中です。

今回はその3回目で、ディープラーニングでよく使用するNumPy関数を取りあげます。
内容としては次のとおりです。

・sum関数
・max関数
・argmax関数
・where関数

ではスタートです!

(参考図書 「はじめてのディープラーニング」我妻幸長著 2章Phythonの概要)

sum関数

エクセルでもよく使用する、合計を求める関数です。
NumPyでは配列の総和だけでなく、各列/行の和を求めることができます。
ちなみに元の英語はsummation(合計)です。
例題をみてみましょう。

スクリーンショット 2020-03-29 7.43.23

出力の形式を指定できるのは、ディープラーニングのプログラムでは大事なポイントかもしれません。
(配列を演算するとき次元が合っていることが重要と考えるので。)

引数のaxisは、このように表記を省略することが可能です。

スクリーンショット 2020-03-29 7.47.52

max関数

最大の要素をピックアップする関数です。
エクセルでもたまに使いますね。
sum関数と同じように、各列/行の最大値をひろうことができます。

スクリーンショット 2020-03-29 7.52.33

argmax関数

最大値のインデックス(要素番号)を返す関数です。
私は初めて目にしましたが、こうやって使います。

スクリーンショット 2020-03-29 8.00.02

最大値が配列のどこの位置にあるか知るのも、ディープラーニングでは重要そうな気がします。(根拠はありませんw)

ちなみにargmaxは、argument of the maximumの略で、ウィキペディアによれば最大点集合という意味らしいですがよくわかりません。
華麗にスルーしよっと。

where関数

これは元ある配列に条件をつけて新たな配列を生成する関数です。
初めてお目にかかりました。
引数は次のように設定します。

np.where(条件,条件を満たしている場合の値,条件を満たしていない場合の値)

うーん、ちょっとよくわからないぞ。
例題をみてましょう。

スクリーンショット 2020-03-29 8.12.17

使い方はエクセルのif関数のイメージですね。
条件を指定して配列の一部を簡単に書き換えて、そのうえ新しい配列を作ることができました。

結構便利かもしれません。
パッと思いつく使い方としては、「ある条件以上なら1、それ未満なら0にする。」とかでしょうか。


今回はディープラーニングでもよく使用する(らしい)NumPyの関数を4つ学習しました。
次回はグラフの描画などに取り組みます。

それではまた(^_^)ノシ

よろしければサポートお願いします!いただいたサポートは書籍代等に活用いたします!