[SciPy-user] How to use where

Dave dave.hirschfeld@gmail....
Thu Aug 21 09:03:21 CDT 2008


Alexander Borghgraef <alexander.borghgraef.rma <at> gmail.com> writes:

> 
> Hi all,
> 
>  I'm trying to figure out here how 'where' works exactly. I'm working
> on a list of vectors which I represent as a 2D array, and I'd like to
> remove the vectors which are out of bounds. So after some
> experimenting I got to basically this:
> 
>  listofvectors = ...
>        # shape is ( 100, 2 )
>  bound = array( [ xmax, ymax ] )
>  inside = where( all( listofvectors < bound, axis = 1 ) )    # inside
> is ( array[ 1, 2, 4, 10, ... ] )
>  listofvectors = listofvectors[ inside, : ]
> # shape is ( 1, 100, 2 )
> 

In [1]: listofvectors = rand(100,2)

In [2]: bound = array([0.5,0.8])

In [3]: idx = all(listofvectors  < bounds,axis=1)

In [4]: inbounds = listofvectors[idx,:]

I'm not sure of the utility of where - I tend to use boolean masks. Is there any
reason one wouldn't use the code I posted above?

-Dave






More information about the SciPy-user mailing list