# ベクトル演算したい ```python a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) a + b # ==> array([5, 7, 9]) a - b # ==> array([-3, -3, -3]) a * b # ==> array([4, 10, 18]) a / b # ==> array([0.25, 0.4, 0.5]) ``` リストと異なり、NumPy配列は要素同士のベクトル演算ができます。 ## 四則演算したい ```python a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) a + b # ==> array([5, 7, 9]) a - b # ==> array([-3, -3, -3]) a * b # ==> array([4, 10, 18]) a / b # ==> array([0.25, 0.4, 0.5]) ``` NumPy配列同士であれば、算術記号 (`+`、`-`、`*`、`/`など)で 要素ごとの四則演算ができます。 :::{seealso} リストは四則演算できません。 ```python a = [1, 2, 3] b = [4, 5, 6] a + b # ==> [1, 2, 3, 4, 5, 6] a - b # ==> TypeError a * b # ==> TypeError a / b # ==> TypeError ``` ::: ## 内積したい(`np.dot`) ```python np.dot(a, b) # ==> np.int64(32) ``` `np.dot`でNumPy配列同士の内積を計算できます。 サイズが異なる場合はエラー(`ValueError`)になります。 | 内容 | 入力サイズ | 出力サイズ | |---|---|---| | 内積(スカラー) | `(n,)` `(n,)` | `()` | | 行列 x ベクトル | `(m, n)` `(n,)` | `(m,)` | | 行列 x 行列 | `(m, n)` `(n, p)` | `(m, p)` | 行列(2次元配列)同士の内積を計算する場合、 左の行列の **列数** と、 右の行列の **行数** が 一致していないといけません。 ## 外積したい(`np.cross`) ```python np.cross(a, b) # ==> array[-3, 6, -3] ``` 3次元ベクトル(要素が3つの1次元配列)同士の外積を計算できます。 ## 統計処理したい(`np.mean` / `np.sum`) ```python a = np.array([1, 2, 3, 4, 5]) np.mean(a) # 3 np.median(a) # 3 np.var(a) # 2 np.std(a) # 1.414... np.min(a) # 1 np.max(a) # 5 np.sum(a) # 15 ``` NumPy配列に対して、基本的な統計処理ができます。