numpyのブロードキャストルール

563 ワード

まずnumpyの放送ルールについてお話しします.
1、2つの数の次元数が異なる場合、小さな次元配列の形状は一番左に1を補う.
2、2つの配列の形状がいずれの次元でも一致しない場合、配列の形状は次元が1の次元に沿って拡張され、別の配列の形状に一致します.
3、2つの配列の形状がいずれの次元でも一致せず、1に等しい次元がない場合、異常が発生します.

import numpy as np
a = np.ones((2,3))
b = np.arange(3)
#a.shape = (2,3) b.shape = (3,)
#   ,    1,       1,b.shape = (1,3)
#   ,    2,     ,  1              ,b.shape = (2,3)
c = a + b
#c.shape = (2,3)
print(c)