この単純な 1D のケースでは、実際にはブール値のマスクを使用します。
a = numpy.arange(10)
include_index = numpy.arange(4)
include_idx = set(include_index) #Set is more efficient, but doesn't reorder your elements if that is desireable
mask = numpy.array([(i in include_idx) for i in xrange(len(a))])
これで、値を取得できます。
included = a[mask] # array([0, 1, 2, 3])
excluded = a[~mask] # array([4, 5, 6, 7, 8, 9])
そのシナリオでの出力の順序が重要であるためa[mask]
、必ずしも同じ結果が得られるとは限らないことに注意してください(ほぼ と同等である必要があります)。ただし、除外されたアイテムの順序が明確に定義されていないため、これは問題なく機能するはずです。a[include_index]
include_index
a[sorted(include_index)]
編集
マスクを作成するより良い方法は次のとおりです。
mask = np.zeros(a.shape,dtype=bool)
mask[include_idx] = True
(セバーグに感謝) .