From: Mads I. <mp...@os...> - 2006-02-22 10:26:34
|
On Tue, 21 Feb 2006, Sasha wrote: > > python -m timeit -s "from numpy import array; x = array([1.5]*1000)" "(x+0.5).astype(int).astype(float)" > 100000 loops, best of 3: 18.8 usec per loop > > python -m timeit -s just want to point out that the function foo(x) = (x+0.5).astype(int).astype(float) is different from around. For x = array([1.2, 1.8]) it works but for x = array([-1.2, -1.8]) you get around(x) = array([-1., -2.]) whereas foo(x) gives foo(x) = array([0., -1.]) Using foo(x) = where(greater(x,0),x+0.5,x-0.5).astype(int).astype(float) will work. // Mads |