ファンシーインデックスが機能するのと同じように、複数の軸を引き継ぐことは可能ですか?
多次元配列はかなり大きいので、スピードアップの可能性を期待していました。
例えば:
import numpy as np
x = np.random.rand(20,20,20,20)
m = np.where(x>0.5)
m = (m[0],m[1],m[2])
print x[m].shape
あなたのコード:
m = np.where(x>0.5)
m = (m[0],m[1],m[2])
result = x[m]
繰り返しを使用して np.where を回避するように記述できます。
m = np.sum(x>0.5,-1)
result = x.reshape(-1,x.shape[-1]).repeat(w.ravel(), 0)
これは約4倍高速に見えます。しかし、あなたが求めるつもりはなかったのだろうか
m = np.any(x>0.5,-1)
result = x[m,:]
重複を作成しないのはどれですか (ただし、ここでは再形成が必要です)?