[Numpy-discussion] numpy.where

Sebastian Haase haase at msg.ucsf.edu
Sun Jul 15 04:04:58 EDT 2007


On 7/14/07, Robert Kern <robert.kern at gmail.com> wrote:
> Sebastian Haase wrote:
> > Hi.
> > Two things.
> > 1) The doc-string of numpy.where() states that transpose(where(cond,
> > x,y)) whould always return a 2d-array. How can this be true?? It also
> > says (before) that if x,y are given where(cond,x,y) always returns an
> > array of the same shape as cond ....
>
> It is wrong. It actually meant
>
>  transpose(where(condition))
>
> > 2) Could we have another optional argument "dtype" in numpy.where()?
> > Otherwise I would have to always write code like this:
> > a = N.where( arr>x, 1.0, 0.0)
> > a = a.astype(N.float32)
>
> a = N.where(arr > x, N.float32(1), N.float32(0))

If the x,y arguments are not scalars but (large) arrays this would
need lots of unneccessary temporary memory (peak of 3 times the needed
output memory size).
I would wish that this function,   and others which generate output
arrays, all get an addition optional dtype argument. (Just like the
functions in nd-image)

Comments?
Thanks for your quick reply, Robert, as always.
-Sebastian



More information about the NumPy-Discussion mailing list