[Numpy-discussion] How do I do this?

Christopher Barker Chris.Barker at noaa.gov
Fri Aug 29 21:09:25 EDT 2008


Keith Goodman wrote:
>> Alan G Isaac wrote:
>>> Does this do what you want?
>>> idx = np.abs(a)<min_value
>>> a[idx] = min_value

>> Keith Goodman wrote:
>>> If you only have integers then
>>>
>>>>> x
>>>    array([ 1,  2, -5, -1,  0])
>>>>> np.sign(x+1e-16) * np.maximum(np.abs(x), 2)
>>>    array([ 2.,  2., -5., -2.,  2.])
>> that would work, though I like Alan's better.
> 
> I thought -1 should go to -2. If not, then my attempt doesn't work.

arrg! yes, you are quite right -- -1 should go to -2. That's what I get 
for trying to get home early before the holiday weekend....

honestly, in this case, it probably doesn't matter much. I'm using this 
in my wxPython data-visualization oriented 2-d drawing library: 
FloatCanvas. When you zoom out an a rectangle, at some point it gets 
very small and disappears. Often that is appropriate. however, in some 
users, folks want it to reach a minimum size, say a few pixels, and not 
get smaller. The trick is that rectangles can have a height that is 
negative due to swapping the y axis to be y-up, rather than y-down, like 
it usually is for graphics drawing. So if the user wants a minimum 
height of 2, and the rect has a height of -1 after scaling, it should 
really get a height of -2. as we're only talking a couple pixels, it 
probably doesn't matter, and that's why I didn't notice the error.

thanks,

-Chris



-- 
Christopher Barker, Ph.D.
Oceanographer

NOAA/OR&R/HAZMAT         (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception



More information about the NumPy-Discussion mailing list