[Python-Dev] Conditional expressions and sequences

Paul F. Dubois paul@pfdubois.com
Tue, 16 Oct 2001 08:49:13 -0700


One of the most cherished of Numpy operations is:

x = where (condition, t, f)

which creates an array x, shaped like condition. Each element of this
result is set to the corresponding element of t or f depending on
whether the corresponding element of condition is true or false. Either
or both of t and f can be a scalar but otherwise must be the same shape
as condition.

The reason this is cherished is, of course, that it avoids a scalar loop
with an if-test in it. Scalar loops make Nummies cringe.

Now in your new syntax this is essentially

x = if condition then t else f

Therefore it would be cool if the implementation was
x=condition.__where__(t,f). This slot could be overwritten by classes
like Numeric's array. If condition was a list this might be useful too. 

Never mind how I spelled __where__, please. The naming would require
thought.

Ducking-down-behind-the-barricade-'ly yours,

Paul

P.S. I once learned a language where you could say
x = y if c
and it was yummy.