Тернарный оператор для NumPy ndarray? - PullRequest
18 голосов
/ 21 октября 2011

Есть ли у NumPy троичный оператор?Например, в R есть векторизованная if-else функция:

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

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

1 Ответ

25 голосов
/ 21 октября 2011

Вы ищете 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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...