Skip to Content
Pythonデータサイエンスハンドブック 第2版 ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習
book

Pythonデータサイエンスハンドブック 第2版 ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

by Jake VanderPlas, 菊池 彰
February 2024
Intermediate to advanced
576 pages
9h 17m
Japanese
O'Reilly Japan, Inc.
Content preview from Pythonデータサイエンスハンドブック 第2版 ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

8章配列の計算:ブロードキャスト

「6章 NumPy配列の計算:ユニバーサル関数」では、NumPyのユニバーサル関数を使用して演算をベクトル化し、動作の遅いPythonループを取り除く方法を学びました。ここではブロードキャストについて説明します。これは、異なるサイズや形状の配列に対して二項演算(加算、減算、乗算など)を適用するための一連のルールです。

8.1 ブロードキャストの基礎

同じサイズの配列の場合、二項演算は要素ごとに実行されます。

In [1]: import numpy as np

In [2]: a = np.array([0, 1, 2])
        b = np.array([5, 5, 5])
        a + b
Out[2]: array([5, 6, 7])

ブロードキャストにより、この二項演算を異なるサイズの配列に対しても実行できます。例えば、スカラー(0次元の配列と考える)と配列の加算が行えます。

In [3]: a + 5
Out[3]: array([5, 6, 7])

これは値5をコピー、もしくは配列[5, 5, 5]に引き伸ばした後、配列aとの加算を行う操作と考えられます。

この手法を高次元の配列にも拡張できます。確認のために、2次元配列と1次元配列の加算を観察してみましょう。

In [4]: M = np.ones((3, 3))
        M
Out[4]: array([[1., 1., 1.],
               [1., 1., 1.],
               [1., 1., 1.]])

In [5]: M + a
Out[5]: array([[1., 2., 3.],
               [1., 2., 3.],
               [1., 2., 3.]])

1次元配列aは、配列Mの形状に一致するよう2番目の次元に沿って引き伸ばされます。すなわちブロードキャストされます。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

Jake VanderPlas, 菊池 彰
推薦システム実践入門 ―仕事で使える導入ガイド

推薦システム実践入門 ―仕事で使える導入ガイド

風間 正弘, 飯塚 洸二郎, 松村 優也
プロダクトマネージャーのしごと 第2版 ―1日目から使える実践ガイド

プロダクトマネージャーのしごと 第2版 ―1日目から使える実践ガイド

Matt LeMay, 永瀬 美穂, 吉羽 龍太郎, 原田 騎郎, 高橋 一貴

Publisher Resources

ISBN: 9784814400638Publisher Website