[Numpy-discussion] range in numpy where

Eric Firing efiring at hawaii.edu
Thu Jan 22 19:57:02 EST 2009


Ross Williamson wrote:
> Hi All
> 
> I want to get out the index of values in an array. Normally WHERE  
> works fine for one conditional statement but it does not work for two  
> - i.e.
> 
> a = array([0,1,2,3,4,5,6,7,8,9])
> 
> ind, = where(a > 5)
> 
> Works fine but if I wanted:
> 
> ind = where((a > 5) and (a<8))

Python/numpy wart: for fairly fundamental Python reasons, "and" does not 
work elementwise so you have to use the "&" operator instead:

ind = where((a > 5) & (a<8))

Same for "or" and "|".

Parentheses as you have them are essential because of the precedence of 
the bit operators.

Eric
> 
> Then it bugs out with the following message:
> 
> "The truth value of an array with more than one message is ambiguous"
> 
> Any ideas?
> 
> Cheers
> 
> Ross
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion




More information about the NumPy-Discussion mailing list