Thanks for the tips! I am going to look into this some more. I am not used to using Numeric and the logical functions. I didn't think about what you pointed out and somewhere the returned values from these logical methods are not what I expect. I will rewrite the whole thing using alltrue instead.
/Sheldon Robert Kern skrev: > Sheldon wrote: > > Hi, > > > > I have a written a script that will check to see if the divisor is zero > > before executing but python will not allow this: > > > > if statistic_array[0:4] > 0.0: > > statistic_array[0,0:4] = > > int(multiply(divide(statistic_array[0,0:4],statistic_array \ > > [0,4]),10000.0))/100.0 > > > > Does anyone know why Python is complaining: > > > > "statistic_array[0,0:4] = > > int(multiply(divide(statistic_array[0,0:4],statistic_array[0,4]),10000.0))/100.0 > > > > OverflowError: math range error" > > > > and how do I get around this problem? This stupid because there is a if > > statement preventing this "dividing by zero". > > What kind of arrays are you using? If it's Numeric (and I think it is because > numarray and numpy would throw an error at the if: statement), then your test > is > incorrect. > > Comparisons yield arrays of boolean values. When a Numeric boolean array is > used > as a truth value (like in an if: statement), then it will return True is *any* > of the values are True. Use Numeric.alltrue(statistic_array[:4] > 0.0) > instead. > > Both numarray and numpy throw an exception when one attempts to use arrays as > truth values since the desired meaning (alltrue or sometrue) is ambiguous. > > -- > Robert Kern > > "I have come to believe that the whole world is an enigma, a harmless enigma > that is made terrible by our own mad attempt to interpret it as though it > had > an underlying truth." > -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list