前提・実現したいこと
Numpyの初心者です。ユニバーサル関数を使って加算のブロードキャストを行うため,add.atを利用しようと思っていました。以下のコードはaとbとで両者とも等価と思っていたのですが、結果は異なります。なぜなのかご教示いただける方、教えて下さい。単なる勘違いかもしれません。そもそもadd.atの仕様はhttps://numpy.org/doc/stable/reference/generated/numpy.ufunc.at.html読んでも詳しく書かれていません。
該当のソースコード
Python
1>>> a=np.ones((3,3)) 2>>> np.add.at(a, [[0,2],[1,1]],1) 3>>> a 4array([[1., 2., 1.], 5 [1., 1., 1.], 6 [1., 2., 1.]]) 7>>> idx=np.array([[0,2],[1,1]]) 8>>> b=np.ones((3,3)) 9>>> np.add.at(b, idx,1) 10>>> b 11array([[2., 2., 2.], 12 [3., 3., 3.], 13 [2., 2., 2.]])
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/25 13:02