見出し画像

Pythonプログラミング - NumPyを使ってみよう

Pythonの便利なライブラリの使い方です。今、話題の機械学習で計算をする場合に便利なのでよく利用されます。

numpyを使えるようにするには"numpy"を取り込み"np"をつけることで簡単に使えるようにします。

import numpy as np 

配列を作ってみます。

arr = np.array([1,2,3])

これを使って計算します。例えば配列の中の値全てに"3"を掛けたい場合は

arr*2

とすれば、
array([2, 4, 6])

と表示されます。これは配列"arr"の値を全てに2倍した値が出力されています。

numpyを使わずに同じように計算してみます。

nomalArray = [1,2,3]

nomalArray*2

[1, 2, 3, 1, 2, 3]

と出てきます。値に"2"を掛けての表示ではなく、同じものがもひとつ追加されています。配列の中の値については変化はありません。

同じように配列の中の値を計算させるには

nomalArray = [1,2,3]
arr2 = []

for i in nomalArray:
    arr2.append(i * 2)

という感じにfor in文で値にそれぞれ"2"を掛けていき配列として再度追加する方法が考えられます。

配列の値について計算させるのはnumpy配列を使えば計算が簡単にできることがわかります。

配列同士の総和を求める計算は"np.sum()"を使って

a = np.array([1, 2])
b = np.array([3, 4])

np.sum(a*b)

とすると"11"と出てきます。

1*3 + 2*4

の計算となります。

ベクトルの内積が計算は"np.dot()"を使って

a = np.array([1,2])
b = np.array([3,4])

np.dot(a,b)

とするとnp.sum()と同じように"11"と出ますが、多次元配列

a = np.array([[1,2],
              [1,2]])
b = np.array([[3,4],
              [3,4]])

np.dot(a,b)

の計算をすると

array([[ 9, 12],
       [ 9, 12]])

と計算されます。この場合は2次元の配列の結果となります。

1*3+2*3 = 9 , 1*4 + 2*4 = 12

ニュートラルネットワークの計算にも使われているものとなります。


この記事が気に入ったらサポートをしてみませんか?