Python - срезать массив до тех пор, пока не будет выполнено определенное условие

Мне нужно вырезать массив из заданного индекса до тех пор, пока не будет выполнено определенное условие.

>>> a = numpy.zeros((10), dtype='|S1')
>>> a[2] = 'A'
>>> a[4] = 'X'
>>> a[8] = 'B'
>>> a
array(['', '', 'A', '', 'X', '', '', '', 'B', ''], dtype='|S1')

Например, для указанного выше массива мне нужно подмножество из заданного индекса до первых ненулевых значений в обоих направления. Например, для значений индекса 2, 4, 8 результаты будут такими:

['', '', A, '']      # 2
['', X, '', '', '']  # 4
['', '', '', B, '']  # 8

Есть предложения по простейшему способу сделать это с помощью numpy API? Изучение python и numpy, буду признателен за любую помощь. Спасибо!

5
задан armandino 7 March 2011 в 06:41
поделиться