> To summarize, > with a numpy array called a, the OP is getting an error doing: > > (3 < a < 5).any() > >> ... > > I think not. The last expression you give will even return true if one > of the values is > 3 and a DIFFERENT value is < 5. And i suspect the > OP only wants a TRUE if at least one item in the array is between 3 and 5. > > I know nothing about numpy, but does it have a way to do an element-wise > AND of two bool arrays of the same size? Maybe it's a function call and > not 'and' Or maybe it's the & operator or something.
Yes, numpy does have a function like this: numpy.all() [ "and" function ] numpy.any() [ "or" function ] > I find the operator overloading i've seen in numpy to be very confusing, > so I haven't tried to download it and try it out. Maybe if I read the > docs directly, instead of just seeing examples and problems here, I'd > think differently. here you go :) http://docs.scipy.org/doc/numpy/reference/generated/numpy.all.html#numpy.all http://docs.scipy.org/doc/numpy/reference/generated/numpy.any.html#numpy.any you can ask if any satisfy the conditions and return true if 1+ are true: >>> a = numpy.array([ 7., 1., 1., 1., 2., 4., 0., 7., 6., >>> 10.]) >>> numpy.any([ 3 < a, a < 5]) True >>> numpy.all([ 3 < a, a < 5]) False or you can ask for an array back telling you which are true and which false: >>> numpy.any([ 3 < a, a < 5], axis=0) array([ True, True, True, True, True, True, True, True, True, True], dtype=bool) >>> numpy.any([ 3 < a, a < 5], axis=0) array([False, False, False, False, False, True, False, False, False, False], dtype=bool) Note you are not limited to just comparing two arrays, but can compare as many as you like. To the OP: in this case, google (insert whatever search engine you like) is your friend. A good first bet is if there is some operation you like in python, other people like it also, and someone has taken the time to make a numpy version which acts element-wise on equal sized arrays. Andre _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor