Ответ 1
Вы ищете numpy.where()
:
>>> print numpy.where(numpy.arange(10) < 3, 'a', 'b')
['a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b']
NumPy даже имеет обобщение (которое отображает 0, 1, 2 и т.д. В значения, вместо отображения только True и False): numpy.choose()
.