1. ホーム
  2. python

[解決済み] Numpy 各行をベクトル要素で割る

2022-04-26 03:13:28

質問

numpyの配列があるとします。

data = np.array([[1,1,1],[2,2,2],[3,3,3]])

と、対応する "vector:" があります。

vector = np.array([1,2,3])

をどのように操作すればよいのでしょうか? data となるように、各行にそって引き算か割り算をします。

sub_result = [[0,0,0], [0,0,0], [0,0,0]]
div_result = [[1,1,1], [1,1,1], [1,1,1]]

長い話ですが、2次元配列の各行に対して、各行に対応するスカラーを含む1次元配列で操作を行うにはどうすればよいでしょうか。

どのように解決するのですか?

さあ、どうぞ。あなたはただ None (または、代わりに np.newaxis を放送と組み合わせたものです。

In [6]: data - vector[:,None]
Out[6]:
array([[0, 0, 0],
       [0, 0, 0],
       [0, 0, 0]])

In [7]: data / vector[:,None]
Out[7]:
array([[1, 1, 1],
       [1, 1, 1],
       [1, 1, 1]])