📅  最后修改于: 2023-12-03 15:10:21.234000             🧑  作者: Mango
在使用 Python 进行数值计算时,我们经常需要使用数组来存储和处理数据。但是,在处理数组时,我们必须注意数组中不得包含 infs 或 NaN,否则会导致计算错误或异常。
我们可以使用 numpy 库中的 isinf() 和 isnan() 函数来检查数组中是否包含 infs 或 NaN。示例如下:
import numpy as np
arr = np.array([1.0, 2.0, np.inf, np.nan])
print(np.isinf(arr)) # [False False True False]
print(np.isnan(arr)) # [False False False True]
如果数组中包含 infs 或 NaN,我们可以选择删除或替换这些值,具体取决于我们的需求和数据特征。
我们可以使用 numpy 库中的 isnan() 和 isinf() 函数来找到包含 infs 或 NaN 的位置,并使用 numpy 库中的 delete() 函数删除这些值。示例如下:
import numpy as np
arr = np.array([1.0, 2.0, np.inf, 4.0, np.nan, 6.0])
mask = np.isnan(arr) | np.isinf(arr)
arr_cleaned = np.delete(arr, np.where(mask))
print(arr_cleaned) # [1. 2. 4. 6.]
我们可以选择使用数据中的中位数、均值或其他合适的值来替换包含 infs 或 NaN 的值。示例如下:
import numpy as np
arr = np.array([1.0, 2.0, np.inf, 4.0, np.nan, 6.0])
mask = np.isnan(arr) | np.isinf(arr)
arr_cleaned = arr.copy()
arr_cleaned[mask] = np.median(arr[~mask])
print(arr_cleaned) # [1. 2. 3.5 4. 3.5 6.]
以上就是关于如何处理数组中包含 infs 或 NaN 的介绍。在使用数组进行数值计算时,务必注意这些问题,以避免计算错误或异常。