2011-10-21 11 views
14

Czy NumPy ma operatora trójskładnikowego? Na przykład, w R jest wektorowy if-else funkcja:Ternary operator dla NumPy ndarray?

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

Czy jest coś równoważne w NumPy?

Odpowiedz

19

Szukasz numpy.where():

>>> print numpy.where(numpy.arange(10) < 3, 'a', 'b') 
['a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b'] 

NumPy ma nawet uogólnienie mapy (to 0, 1, 2, itd do wartości, zamiast mapowania tylko prawda i fałsz): numpy.choose().

+0

To wszystko. Dziękuję Ci. Wybór wydaje się skomplikowany, ale znajdę gdzieś dla niego zastosowanie. – hatmatrix

Powiązane problemy