numpy 填充nan
在数据处理中,经常会遇到缺失值的情况,其中最常见的缺失值就是NaN(Not a Number)。在Python中,可以使用NumPy库来处理包含NaN的数据。本文将详细介绍如何使用NumPy库来填充NaN值。
创建包含NaN的数组
首先,让我们创建一个包含NaN的数组作为示例数据:
import numpy as np
arr = np.array([[1, 2, np.nan],
[4, np.nan, 6],
[np.nan, 8, 9]])
print(arr)
运行以上代码,我们得到的输出如下:
[[1. 2. nan]
[4. nan 6.]
[nan 8. 9.]]
可以看到,上面的数组包含了一些NaN值,接下来我们将介绍如何使用NumPy来填充这些NaN值。
填充NaN值
使用特定值填充
填充NaN值的最简单方法就是使用一个特定的值来替代NaN。比如,我们可以用0来代替NaN:
new_arr = np.nan_to_num(arr, nan=0)
print(new_arr)
运行以上代码,我们得到的输出如下:
[[1. 2. 0.]
[4. 0. 6.]
[0. 8. 9.]]
可以看到,NaN值被成功替换为了0。
使用平均值填充
另一种常见的填充NaN值的方法是使用平均值来替代NaN。我们可以通过计算每一列的平均值来填充NaN值:
col_mean = np.nanmean(arr, axis=0)
inds = np.where(np.isnan(arr))
arr[inds] = np.take(col_mean, inds[1])
print(arr)
运行以上代码,我们得到的输出如下:
[[1. 2. 7.5]
[4. 5. 6. ]
[2.5 8. 9. ]]
可以看到,NaN值被成功替换为了每列的平均值。
总结
本文介绍了如何使用NumPy库来填充包含NaN的数组。通过使用特定值或者计算平均值的方法,我们可以有效地处理NaN值,使得数据在处理过程中更加完整和准确。