📜  如何删除 Numpy 数组中包含非数字值的行?(1)

📅  最后修改于: 2023-12-03 14:52:08.908000             🧑  作者: Mango

如何删除 Numpy 数组中包含非数字值的行?

在处理 Numpy 数组时,有时候数组中会包含非数字值,这可能会影响后续的计算。因此,需要将包含非数字值的行从数组中删除。

以下是使用 Python 代码删除 Numpy 数组中包含非数字值的行的方法:

import numpy as np

# 创建一个包含非数字值的 Numpy 数组
arr = np.array([[1, 2, np.nan],
                [4, 5, 6],
                [7, np.nan, 9]])

# 删除包含非数字值的行
arr = arr[~np.isnan(arr).any(axis=1)]

# 打印结果
print(arr)

在上述代码中,我们首先创建了一个包含非数字值的 Numpy 数组。然后,我们使用 np.isnan 函数来检查是否包含非数字值。通过 any 函数,我们可以在每行中查找是否存在任何非数字值。若某行中存在非数字值,则该行被标记为 True。最后,我们使用 ~ 操作符对结果取反,以获取不包含非数字值的行。最后,我们打印出结果。

输出结果为:

[[4. 5. 6.]]

因为第一行和第三行都包含非数字值,所以这两行被删除了。只有第二行没有包含非数字值,所以它保留下来了。

总之,这是一种非常简单的方法,可以用来删除 Numpy 数组中包含非数字值的行。