2

ブール配列を反復可能なインデックスに変換するにはどうすればよいですか?

例えば、

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] 

より良い方法はありますか?

4

1 に答える 1

3

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の場合、基本的に質問のロングフォームと同等であると記載されていることに注意してください。

于 2013-02-04T06:14:34.617 に答える