NumPy② (スカラー演算)

スカラー演算

線形代数では、大きさのみで表され、方向をもたない量のことをスカラーと言います。

つまり、0 や 1、2 などの連続しない独立した単一の値がスカラーです。

ベクトルは1次元配列なので、ベクトルに対してスカラー演算を行う場合、forなどで処理を繰り返す必要があります。

しかしndarrayオブジェクトとして作成したベクトル列は、ループを使わず一括して処理が行えます。

ブロードキャスト

NumPyでは、ブロードキャストという仕組みを使うことで、成分ごとの演算をまとめて行うことができます。

ブロードキャストを行うための条件は下記のいずれかの条件を満たした場合です。

  • 次元が等しい。
  • 一方のベクトルまたは行列がスカラーである。(スカラー演算)

スカラー演算のサンプル

ベクトルに対して四則演算子でスカラー演算を行うと、すべての要素に対して演算を行うことができます。

[Google Colaboratory]

1
2
3
4
5
6
7
8
import numpy as np

# ベクトルを作成
import numpy as np
x = np.array([1, 2, 3, 4, 5], dtype = np.float)

# 足し算
x + 20

[実行結果]

[Google Colaboratory]

1
2
# 引き算
x - 10

[実行結果]

[Google Colaboratory]

1
2
# 掛け算
x * 100

[実行結果]

[Google Colaboratory]

1
2
# 割り算
x / 2

[実行結果]

[Google Colaboratory]

1
2
# 割り算の結果を整数だけにする
x // 3

[実行結果]

[Google Colaboratory]

1
2
# 剰余
x % 3

[実行結果]

ベクトルに対してそれぞれのスカラー演算が行われていることが確認できました。