Python math.nan 常量



Python math.nan 常量表示 “Not a Number”。它是 Python 的 math 模块中可用的预定义值,用于表示未定义或不可表示的数值,特别是那些由未定义的数学运算产生的数值。

在一般数学中,当尝试执行数学上未定义的运算时,例如将零除以零、取负数的平方根或任何涉及无穷大的运算,就会出现 NaN。

NaN 用作占位符,以指示计算结果不能表示为有效的数值。它与表示无界值的无穷大 (∞) 和负无穷大 (-∞) 不同,用于处理数值计算中的异常情况。

语法

以下是 Python math.nan 常量的基本语法 -


 math.nan

返回值

该常量返回浮点 nan(非数字)值。

示例 1

在以下示例中,我们将创建一个 NaN 值。我们使用 math.nan 常量初始化一个变量 “nan_value”,该常量表示 “非数字” (NaN)。变量 “nan_value” 保存一个表示未定义数值数据的值 -


import math
nan_value = math.nan
print("The value of nan_value is:", nan_value)

输出

获得的输出如下 -

The value of nan_value is: nan

示例 2

在这里,我们从数据点列表中筛选出 NaN 值。我们创建一个新列表 “valid_data”,仅包含原始列表中的非 NaN 值。此技术通常用于数据处理中,以处理缺失或未定义的数据点 -


import math
data = [2.5, math.nan, 3.7, math.nan, 1.9]
valid_data = [x for x in data if not math.isnan(x)]
print("The valid data points are:", valid_data)

输出

以下是上述代码的输出 -

The valid data points are: [2.5, 3.7, 1.9]

示例 3

任何数字和 NaN 之和始终是 NaN。

在此示例中,我们执行一个计算,其中其中一个操作数为 NaN -


import math
x = 10
y = math.nan
result = x + y
print("The result of the calculation is:", result)

输出

生成的结果如下所示 -

The result of the calculation is: nan

示例 4

现在,我们创建一个包含数值的列表,包括 math.nan 表示的 NaN 值。然后,我们使用列表推导式列表中过滤掉 NaN 值。结果列表仅包含有效的数值 -


import math
values = [1, math.nan, 3, math.nan, 5]
filtered_values = [x for x in values if not math.isnan(x)]
print("The list after filtering out NaN values is:", filtered_values)

输出

我们得到的输出如下所示 -

The list after filtering out NaN values is: [1, 3, 5]