2017-11-09 30 views
1

私は配列(m, n)と形状の配列indicesである配列yを持っています。私は(Pythonで)次の操作を行いたいとします別の配列とインデックス配列を持つnumpy配列を作成する

x = np.ndarray(shape=(m,n,k)) 
for i in range(m): 
    for j in range(n): 
     for l in range(k): 
      x[i,j,l] = y[indices[i,j,l],j] 

forループを使用して必要としない単純numpyのを使ってこれを行う方法はありますか?

+1

なぜあなたは、ループのために使用したくありませんか?あなたはループ用のジェネレータを使うことができますが、それがあなたが探しているものならもっと効率的です。 –

+0

私はもう少しNumPyに慣れようとしています。私は確かにループのために使用することができます、私は知らないNumPyの関数を使用してこれを書くための簡単な方法があるかどうかを知りたいです。 –

答えて

0

使用numpyののadvanced-indexingベクトル化割り当てのために -

x = y[indices, np.arange(n)[:,None]] 
関連する問題