检查Python中的浮点数是否正常

2024-09-28 01:29:59 发布

您现在位置:Python中文网/ 问答频道 /正文

是否有任何python库函数区分常规浮点数和所有非典型浮点数,NaN,+/-Inf,非规范化等。?你知道吗

本质上,我是在问这个问题的Python版本:check if floating point variable has 'normal' values


Tags: 版本ifchecknan规范化variable常规区分
2条回答

要检查浮点数x是否有限,只需使用math.isfinite(x)。你知道吗

要检查浮点x是否是非规范的(次规范的),这里有一个可能的片段:

import numpy
x = 1.0e-320
fmin_normalized = numpy.finfo(type(x)).tiny
x_is_subnormal =  numpy.isfinite(x) and x!= 0 and abs(x) < fmin_normalized
print(x_is_subnormal)

我让您完成工作(编写适当的lambda并过滤集合)

编辑: 正如所指出的,我以前的答复不太奏效,我不确定一个干净的方法来做这件事。 所以我猜你必须挑选出你想删除的类型,比如:

test = [4, 4e99, 0b0101, 3.2, np.nan, 6, np.nan, np.inf]

result = []
for value in test:
    if not np.isnan(value) and np.isfinite(value):
        result.append(value)

print(result)

OUTPUT:
[4, 4e+99, 5, 3.2, 6]

相关问题 更多 >

    热门问题