タイトル画像
琴葉茜

葵はもし、配列型の全部の要素を3倍にする時はどんなプログラムを作る?

琴葉葵

それなら、forループを使ってこうすれば良いじゃん!!

解説画像1
琴葉茜

お!バッチリだねー

琴葉葵

ふふ〜ん♪

琴葉葵

だけど、1つずつ要素を3倍にして新しい配列に追加していくのはちょっと面倒くさいよねー

琴葉茜

そうでしょ
そんな配列型の全要素に同じ数値計算をするのが簡単になるライブラリがあったら便利と思わない?

琴葉葵

それは便利!

琴葉茜

...ということで、今回紹介するのは配列を使った数値計算を簡単にしてくれる「NumPy」を紹介するよ!

解説画像2
琴葉茜

まずはさっき葵が作ってくれたプログラムを「NumPy」で計算する場合のプログラムだとどうなるか見てみよう

解説画像3
琴葉葵

...え?それだけ??
今までの四則演算と同じじゃん!!

琴葉茜

そうでしょー
ちなみに、「NumPy」で扱うときのデータ型は「numpy.ndarray」っていう配列型に似た特別な型になっていて、要素は数値しか扱えないから気をつけてね

琴葉葵

分かった!
ところで、「NumPy」って、数値計算を簡単にしてくれるためだけのライブラリなの?

琴葉茜

良いところに気づいたね!実は「numpy.ndarray」は「行列」として扱う感じになるんだ

琴葉葵

「行列」ってことは、内積を求めたり転置行列を作ったりもできるってことかな?

琴葉茜

そういうことだね
まぁでも、「行列」は高校数学で習っている人とそうでない人がいるみたいだから無理に気にしなくても良いかな

琴葉茜

一応簡単に紹介しておくと、NumPyの場合は行列Aと行列Bの内積なら「np.dot(A, B)」、行列Aの転置行列なら「A.T」とするだけでOKだよ!

琴葉葵

ほえぇぇ

琴葉茜

Pythonは「NumPy」で行列計算を簡単かつ、高速で出来るようになったことで、AI(機械学習)の発展に貢献した部分があるんだよね

琴葉葵

だから最近人気なんだね!

琴葉茜

「NumPy」は機械学習用のライブラリやその他のライブラリでも使われていることが多いから知っておいて損はないと思うよ

琴葉葵

とりあえず、配列の四則演算が簡単になることは分かった!!

琴葉茜

今はそれで十分!!
じゃあ最後に、ざっくり一覧を載せておくね!

構文説明
np.array([...])
NumPy配列を作成(1次元または2次元)
np.array([[1, 2], [3, 4]])
np.zeros((行, 列))
全て0の配列を作成
np.zeros((2, 3))
np.ones((行, 列))
全て1の配列を作成
np.ones((3, 2))
np.arange(開始, 終了)
連続した整数の配列を作成
np.arange(0, 5)
np.reshape(配列, (行, 列))
形を変える(例:1次元 → 2次元)
np.reshape(np.arange(6), (2, 3))
配列.shape
配列の形(行・列の数)を確認
a.shape → (2, 3)
配列.T
転置(行と列を入れ替える)
a.T
np.dot(a, b)
行列の積(内積)
np.dot(a, b)
np.sum(a)
合計を計算
np.sum(a)
np.mean(a)
平均を計算
np.mean(a)
a[行, 列]
要素にアクセス(行列として)
a[0, 1] → 1行目2列目