saito

記者紹介

saitoxu(さいとぅ)

株式会社Carat 最高技術責任者 京都大学大学院修了。新卒でITベンチャーに就職し、BtoBのWebサービス開発に従事。キカガクOnlineでは機械学習を学ぶ初心者が、次のステップを踏み出すのに役立つ情報を発信していく予定。


math

数学をプログラミングで表現するときに手助けとなる、PythonのライブラリNumPyを紹介します。

NumPyとは?

NumPyはPythonの科学計算用ライブラリです。
多次元配列オブジェクトや、ソート・選択・入出力などの高速な操作を提供します。
以前の記事でも軽く紹介しました。

NumPyを使ってみる

では実際にNumPyを使ってみましょう。
今回は簡単な行列の四則演算のプログラミングを行ってみます。

NumPyではarray()メソッドを使って行列を2次元配列として生成します。
四則演算は数値の場合と同じように、直感的に行うことができます。

# coding: utf-8
import numpy as np

A = np.array([[1,2],[3,4]]) # 行列を生成
B = np.array([[5,6],[7,8]])

A + B # 加算
# array([[ 6,  8],
#        [10, 12]])

A - B # 減算
# array([[-4, -4],
#        [-4, -4]])

A * B # 要素同士の積
# array([[ 5, 12],
#        [21, 32]])

np.dot(A, B) # 行列積
# array([[19, 22],
#        [43, 50]])

A / B # 要素同士の商
# [[ 0.2         0.33333333]
#  [ 0.42857143  0.5       ]]

いかがでしょうか?
かなり直感的に行列の四則演算ができることが分かると思います。

実際に使っている側の所感として、行列積と要素同士の積の両方を手軽に計算できることが非常にありがたいです。
機械学習のアルゴリズムには、この両方の演算を使用することが多く、Numpyが大活躍します。

ちなみに、行列積と要素同士の積(アダマール積といいます)は、wikipediaのページで定義がされているので、ご覧ください。

おわりに

NumPyを使った行列の四則演算の方法を紹介しました。
数学ができるようになるのと、それをプログラミングで表現するのとではまた一段ハードルがあります。
NumPyならそのハードルを限りなく下げられるので、ぜひ覚えておいてください!