Одним из решений является принудительное сравнение по округленным целым числам. Я могу сделать новый класс
class int_rounded(object):
def __init__(self, inval, scale=1e5):
self.initial = inval
self.value = np.round(inval * scale).astype(int)
self.scale = scale
def __gt__(self, other):
return self.value > other.value
def __lt__(self, other):
return self.value < other.value
Тогда я могу сделать сравнение
good_vals = np.where(int_rounded(vals) > int_rounded(threshold))
И это, кажется, заставляет результаты быть идентичными кроссплатформенными, но я подозреваю, что есть некоторый сбойрежимы, которые я не нажал.