ブール配列を反復可能なインデックスに変換するにはどうすればよいですか?
例えば、
import numpy as np
import itertools as it
x = np.array([1,0,1,1,0,0])
y = x > 0
retval = [i for i, y_i in enumerate(y) if y_i]
より良い方法はありますか?
np.where
またはを試してくださいnp.nonzero
。
x = np.array([1, 0, 1, 1, 0, 0])
np.where(x)[0] # returns a tuple hence the [0], see help(np.where)
# array([0, 2, 3])
x.nonzero()[0] # in this case, the same as above.
help(np.where)
およびを参照してくださいhelp(np.nonzero)
。
np.where
このページでは、1Dx
の場合、基本的に質問のロングフォームと同等であると記載されていることに注意してください。