
68
2
章
NumPy
の基礎
2.5.3
ブロードキャストの実践
ブロードキャストは、本書の例の中で中核をなすものです。ここでは、ブロードキャストがどの
ように役立つのかという簡単な例をいくつか見てみましょう。
2.5.3.1
配列のセンタリング
前の節では、
ufunc
を使用すれば低速の
Python
ループを明示的に排除できることを確認しまし
た。ブロードキャストはこの能力を拡張します。よく登場する例の
1
つは、一連のデータのセンタ
リングです。各要素にそれぞれ
3
つの値を持つ観測値が
10
個あるとします。標準的な規則(「5.2.1
scikit-learnのデータ表現」を参照)を使用して、これを
10
行
3
列の配列に保存します。
In[17]: X = np.random.random((10, 3))
集約関数
mean
を使って
1
番目の次元に沿って各値の平均を計算できます。
In[18]: Xmean = X.mean(0)
Xme
an
Out[18]: array([ 0.53514715, 0.66567217, 0.44385899])
そして、
X
配列から平均を引いて、センタリング配列を作ります(この操作はブロードキャスト
です)。
In[19]: X_centered = X - Xmean
結果が正しいかどうかを再確認するために、センタリング配列の平均値がゼロに近いことを確認
できます。
In[20]: X_centered.mean(0)
Out[20]: array([ 2.22044605e-17, -7.77156117e-17, ...