从numpy子数组中删除NaN的方法有多种。以下是其中几种常见的方法:
方法一:使用np.isnan()和~运算符
import numpy as np
arr = np.array([1, 2, np.nan, 4, np.nan, 6])
arr = arr[~np.isnan(arr)]
这种方法首先使用np.isnan()函数找到数组中的NaN值,然后使用~运算符取反,得到一个布尔数组,表示哪些元素不是NaN。最后,将这个布尔数组作为索引,从原始数组中选择非NaN值。
方法二:使用np.isfinite()函数
import numpy as np
arr = np.array([1, 2, np.nan, 4, np.nan, 6])
arr = arr[np.isfinite(arr)]
这种方法使用np.isfinite()函数找到数组中有限的值(即非NaN和非无穷大的值),然后将这个布尔数组作为索引,从原始数组中选择有限的值。
方法三:使用np.nan_to_num()函数
import numpy as np
arr = np.array([1, 2, np.nan, 4, np.nan, 6])
arr = np.nan_to_num(arr, nan=0.0)
这种方法使用np.nan_to_num()函数将NaN值替换为指定的值(这里是0.0)。这样就可以将NaN值替换为其他数值,而不是从数组中删除它们。
这些方法可以根据具体的需求选择使用。如果需要删除NaN值,可以使用方法一或方法二。如果需要将NaN值替换为其他数值,可以使用方法三。
领取专属 10元无门槛券
手把手带您无忧上云