Тернарный оператор для NumPy ndarray?

У NumPy есть тройной оператор? Например, в R существует векторная функция if-else:

> ifelse(1:10 < 3,"a","b")
 [1] "a" "a" "b" "b" "b" "b" "b" "b" "b" "b"

Есть ли что-то эквивалентное в NumPy?

Ответ 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().