📜  numpy 删除包含 nan 的行 - Python (1)

📅  最后修改于: 2023-12-03 15:33:14.388000             🧑  作者: Mango

NumPy删除包含NaN的行 - Python

NumPy是Python中最常用的科学计算库之一。当处理大量数据时,经常需要处理包含NaN(Not a Number)值的数组。在此文章中,我们将看到如何使用NumPy删除包含NaN的行。

模拟数据

我们首先创建一个包含NaN值的NumPy数组。

import numpy as np

arr = np.array([[1, 2, np.nan],
                [4, np.nan, 6],
                [7, 8, 9]])

这个数组有3行3列,其中包含一些NaN值。

删除包含NaN的行

我们可以使用NumPy中的isnan()函数来获取一个布尔掩码数组,该数组指示哪些元素是NaN。

mask = np.isnan(arr)

现在我们可以使用np.any()函数检查每一行中是否有NaN值。np.any()函数返回一个布尔值数组,该数组的形状与原始数组的形状相同。

row_mask = np.any(mask, axis=1)

最后,我们可以使用这个布尔掩码数组来删除包含NaN值的行。

clean_arr = arr[~row_mask]

下面是完整的代码:

import numpy as np

arr = np.array([[1, 2, np.nan],
                [4, np.nan, 6],
                [7, 8, 9]])

mask = np.isnan(arr)
row_mask = np.any(mask, axis=1)

clean_arr = arr[~row_mask]

返回的clean_arr数组将不包含任何包含NaN值的行。

这就是如何使用NumPy删除包含NaN的行的完整示例。