从一维numpy数组中删除所有nan值
在数据处理过程中,我们经常会遇到一维numpy数组中包含NaN(Not a Number)值的情况。这些NaN值可能会影响我们的数据分析和模型训练,因此我们需要将其删除。
方法一:使用np.isnan()和np.logical_not()
我们可以使用np.isnan()
函数找到数组中的NaN值,然后使用np.logical_not()
函数过滤掉这些NaN值。
import numpy as np
# 创建包含NaN值的一维numpy数组
arr = np.array([1, 2, np.nan, 4, np.nan, 6])
# 过滤掉NaN值
arr = arr[np.logical_not(np.isnan(arr))]
print(arr)
运行结果:
[1. 2. 4. 6.]
方法二:使用np.isnan()和np.isnan().any()
我们还可以使用np.isnan()
函数找到包含NaN值的索引,然后使用np.delete()
函数删除这些索引对应的元素。
import numpy as np
# 创建包含NaN值的一维numpy数组
arr = np.array([1, 2, np.nan, 4, np.nan, 6])
# 找到NaN值的索引
nan_indices = np.isnan(arr)
# 删除NaN值
arr = np.delete(arr, np.where(nan_indices))
print(arr)
运行结果:
[1. 2. 4. 6.]
通过以上的方法,我们可以很容易地从一维numpy数组中删除所有NaN值,确保数据的准确性和完整性。