Python快速转换numpy数组中Nan和Inf的方法实例说明

  • Post category:Python

当numpy数组中存在NaN或Inf时,我们需要对其进行处理,以便在后续的计算中不会出现错误。下面是两种常见的处理方法:

方法一:使用numpy.nan_to_num()函数

numpy.nan_to_num()函数将NaN和Inf替换为0和有限的数字。下面是一个示例:

import numpy as np

arr = np.array([1, , np.nan, 4, np.inf, -np.inf])
arr = np.nan_to_num(arr)
print(arr)

输出结果为:

[ 1.  2.  0.  4.  0. -0.]

在上面的示例中,我们首先创建了一个包含NaN和Inf的numpy数组。然后,我们使用numpy.nan_to_num()函数将NaN和Inf替换为0和有限的数字。最后,我们打印出处理后的数组。

方法二使用numpy.isnan()和numpy.isinf()函数

另一种处理NaN和Inf的方法是使用numpy.isnan()numpy.isinf()函数。下面是一个示例:

import numpy as np

arr = np.array([1, 2, np.nan, 4, np.inf, -np.inf])
arr[np.isnan(arr)] = 0
arr[np.isinf(arr)] = npinfo(arr.dtype).max
print(arr)

输出结果为:

[ 1.  2.  0.  4.  1.79769313e+308 -1.79769313e+308]

在上面的示例中,我们首先创建了一个包含NaN和Inf的numpy数组。然后,我们使用numpy.isnan()numpy.isinf()函数找到数组中的NaN和Inf。接着,我们将NaN替换为0,将Inf替换为该数据类型的最大值。最后,我们打印出处理后的数组。

希望这些示例能够帮助您快速转换numpy数组中的NaN和Inf。