0
の形状が(N,)
で、N~O(1e9)
の配列があるとします。 次に、(M1,M2,M2)
の結果配列b
があります。最速の繰り返しインデックスの追加(複数の次元の場合はnp.add.at)
次に、の各行にインデックス番号(N,3)
のインデックス配列f
があります。
私は可能な限り迅速に達成したいことは、以下の結果であり、
for i in range(N):
b[*f[i]] += a[i]
ファンシーインデックス繰り返しインデックスがf
であるのでb[f[:,0],f[:,1],f[:,2]] += a
が動作しないようなので、それだけで、それぞれの最後のオカレンスを追加しますインデックスはb
になります。
b
が1Dの場合は、np.add.at(b,f,a)
とすることができます。
私は最速のオプションを探しています。
おかげ -
速い方法がそうように、線形指数を計算した後
np.bincount
であろうnp.bincountメソッドが大規模なもので約30倍高速です! –