#python #arrays #numpy #multidimensional-array
#python #массивы #numpy #многомерный массив
Вопрос:
Есть ли у 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()
.
Комментарии:
1. Вот и все. Спасибо. Выбор кажется сложным, но я найду ему применение где-нибудь.