Python中numpy二维数组去掉nan和inf

Python中numpy二维数组去掉nan和inf

Python中numpy二维数组去掉nan和inf

在进行数据处理和分析时,常常会遇到数据集中存在缺失值(NaN)或者无穷大(Inf)的情况。对于这些异常值的处理是至关重要的,以保证数据分析的准确性和稳定性。在Python中,使用NumPy这个强大的科学计算库,可以方便地对二维数组中的NaN和Inf进行处理。

本文将详细介绍如何使用NumPy库中的函数来去除二维数组中的NaN和Inf元素,让数据变得更加干净和可靠。

1. 创建包含NaN和Inf的二维数组

首先,让我们创建一个包含NaN和Inf的二维数组,以便进行后续的演示和操作。可以使用NumPy的
“`np.array()“`函数来创建一个二维数组,并手动插入NaN和Inf。

import numpy as np

# 创建包含NaN和Inf的二维数组
arr = np.array([[1, 2, np.nan],
                [4, np.inf, 6],
                [7, 8, np.nan],
                [10, 11, np.inf]])

print("原始二维数组:")
print(arr)
Python

运行以上代码,我们可以得到原始的二维数组,包含了NaN和Inf的元素:

原始二维数组:
[[ 1.  2. nan]
 [ 4. inf  6.]
 [ 7.  8. nan]
 [10. 11. inf]]
Python

2. 去除NaN和Inf元素

在NumPy中,可以使用
“`np.isnan()“`和“`np.isinf()“`函数来判断一个数组中的元素是否为NaN或Inf。结合NumPy的逻辑判断方式,我们可以筛选出不包含NaN和Inf的元素,从而实现去除NaN和Inf的目的。

# 去除NaN元素
arr = arr[~np.isnan(arr)]

# 去除Inf元素
arr = arr[~np.isinf(arr)]

# 将处理后的一维数组重新变形为二维数组
arr = arr.reshape(-1, 3)

print("\n去除NaN和Inf后的二维数组:")
print(arr)
Python

运行以上代码,可以得到去除NaN和Inf元素后的二维数组:

去除NaN和Inf后的二维数组:
[[ 1.  2.  6.]
 [ 7.  8. 10.]
 [11.]]
Python

3. 完整示例代码

下面是完整的示例代码,包括了创建含有NaN和Inf的二维数组以及去除NaN和Inf的操作:

import numpy as np

# 创建包含NaN和Inf的二维数组
arr = np.array([[1, 2, np.nan],
                [4, np.inf, 6],
                [7, 8, np.nan],
                [10, 11, np.inf]])

print("原始二维数组:")
print(arr)

# 去除NaN元素
arr = arr[~np.isnan(arr)]

# 去除Inf元素
arr = arr[~np.isinf(arr)]

# 将处理后的一维数组重新变形为二维数组
arr = arr.reshape(-1, 3)

print("\n去除NaN和Inf后的二维数组:")
print(arr)
Python

4. 总结

通过本文的介绍,我们了解了如何在Python中使用NumPy库对二维数组中的NaN和Inf进行处理。通过这些操作,我们可以更好地清洗数据,使得数据集更加干净和可靠,从而为后续的数据分析和建模提供更好的基础。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册