1

ファンシーインデックスが機能するのと同じように、複数の軸を引き継ぐことは可能ですか?

多次元配列はかなり大きいので、スピードアップの可能性を期待していました。

例えば:

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
4

1 に答える 1

3

あなたのコード:

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,:]

重複を作成しないのはどれですか (ただし、ここでは再形成が必要です)?

于 2012-08-08T20:20:44.970 に答える