NumPy ブロードキャストの基本

Beginner

はじめに

このチュートリアルでは、NumPy ライブラリにおけるブロードキャストの概念を紹介します。ブロードキャストは、様々な次元の配列に対して数学演算を行う方法です。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、演算の検証は自動化できません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

同じ形状の 2 つの 1 次元配列を加算する

import numpy as np

a = np.array([1,2,3,4])
b = np.array([2,7,8,9])
c = a+b;
print(c)

出力は次のようになります:[ 3 9 11 13]

異なる形状の 2 つの 1 次元配列を加算しようとする

import numpy as np

a = np.array([4,5,6,7])
b = np.array([1,3,5,7,9,11,14])
c = a+b;

これはエラーを発生させます。なぜなら、異なる形状の配列に対して演算を行うことはできないからです。

ブロードキャストを使って異なる形状の 2 つの 1 次元配列を加算する

import numpy as np

a = np.array([4,5,6,7])
b = np.array([10])
c = a+b;

print(c)

配列 b が配列 a 全体にブロードキャストされるため、このコードは [14 15 16 17] と出力されます。

1 次元配列を 2 次元配列にブロードキャストする

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])

print(a + b)

出力は次のようになります:

[[11 22 33]
 [14 25 36]]

1 次元配列は、2 次元配列の 2 番目の軸にわたってブロードキャストされ、各列に加算されます。

異なる次元の配列を乗算する

import numpy as np

a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])

print(a * b)

出力は次のようになります:

[[ 4 10 18]
 [ 7 16 27]]

1 次元配列は、2 次元配列の最初の軸にわたってブロードキャストされ、各行に乗算されます。

まとめ

このチュートリアルでは、NumPy ライブラリにおけるブロードキャストの概念について説明しました。ブロードキャストは、様々な次元の配列に対して数学的演算を行う方法です。また、配列の加算と乗算を通じてブロードキャストがどのように機能するかを示しました。重要なことは、ブロードキャストは配列が特定の条件を満たす場合にのみ行うことができることです。ブロードキャストは情報の損失につながらない場合にのみ行われます。