HI all, I need to do something I thought would be simple -- set all the values of an array to some minimum. so I did this:
>>> min_value = 2 >>> a = np.array((1, 2, 3, 4, 5,)) >>> np.maximum(a, min_value) array([2, 2, 3, 4, 5]) all was well... then I realized that a could have negative numbers in in, and I really wanted the absolute value to be greater than than minimum: >>> a = np.array((1, 2, 3, 4, -5,)) >>> np.maximum(a, min_value) array([2, 2, 3, 4, 2]) oops! so I added a sign() and abs(): >>> np.sign(a) * np.maximum(np.abs(a), min_value) array([ 2, 2, 3, 4, -5]) all was well. However it turns out a could contain a zero: >>> a = np.array((0, 1, 2, 3, 4, -5,)) >>> np.sign(a) * np.maximum(np.abs(a), min_value) array([ 0, 2, 2, 3, 4, -5]) Darn! I want that zero to become a 2, but sign(0) = 0, so that doesn't work. How can I do this without another line of code special casing the 0, which isn't that big I deal, but it seems kind of ugly... >>> a[a==0] = min_value >>> np.sign(a) * np.maximum(np.abs(a), min_value) array([ 2, 2, 2, 3, 4, -5]) thanks, -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception [EMAIL PROTECTED] _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
