[SciPy-user] allclose friend
Stefan van der Walt
stefan at sun.ac.za
Sat Jan 12 03:50:52 EST 2008
Hi Tom
How about something like
import numpy as np
def close(x,y,decimal=6):
x = np.asarray(x)
y = np.asarray(y)
def compare(x, y, decimal=decimal):
return np.around(abs(x-y),decimal) <= 10.0**(-decimal)
out = np.zeros(len(x),dtype=bool)
out |= (x == y) # handle inf
out |= (np.isnan(x) & np.isnan(y)) # handle nan
out |= compare(x,y) # handle rest
return out
Regards
Stéfan
On Thu, Jan 10, 2008 at 06:02:00PM -0800, Tom Johnson wrote:
> allclose() is neat in that it handles the 'special' cases of inf and
> nan. Does there exist a similar function close()? That is, I want to
> do elementwise float comparisons of two arrays (returning an array of
> booleans)...and I want all the special cases to be handled. It seems
> like this should be an obvious function. There are enough lines in
> allclose() that I don't want to have to reimplement it everytime on my
> own.
More information about the SciPy-User
mailing list