葵はもし、配列型の全部の要素を3倍にする時はどんなプログラムを作る?
それなら、forループを使ってこうすれば良いじゃん!!
お!バッチリだねー
ふふ〜ん♪
だけど、1つずつ要素を3倍にして新しい配列に追加していくのはちょっと面倒くさいよねー
そうでしょ
そんな配列型の全要素に同じ数値計算をするのが簡単になるライブラリがあったら便利と思わない?
それは便利!
...ということで、今回紹介するのは配列を使った数値計算を簡単にしてくれる「NumPy」を紹介するよ!
まずはさっき葵が作ってくれたプログラムを「NumPy」で計算する場合のプログラムだとどうなるか見てみよう
...え?それだけ??
今までの四則演算と同じじゃん!!
そうでしょー
ちなみに、「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列目 |
