私はこのようなことをしたい:
a = # multi-dimensional numpy array
ares = # multi-dim array, same shape as a
a.shape
>>> (45, 72, 37, 24) # the relevant point is that all dimension are different
v = # 1D numpy array, i.e. a vector
v.shape
>>> (37) # note that v has the same length as the 3rd dimension of a
for i in range(37):
ares[:,:,i,:] = a[:,:,i,:]*v[i]
numpyでこれを行うには、もっとコンパクトな方法が必要だと思っていますが、まだわかりません。v を複製してから を計算できると思いa*v
ますが、それよりも優れたものがあると推測しています。したがって、いわば「特定の軸上で」要素ごとの乗算を行う必要があります。どうすればこれができるか知っている人はいますか?ありがとう。(ところで、私は密接に重複した質問を見つけましたが、そこでのOPの特定の問題の性質のために、議論は非常に短く、他の問題に追跡されました。)