如何从numpy数组中删除nan值(3种方法)
您可以使用以下方法从 NumPy 数组中删除 NaN 值:
方法一:使用 isnan()
new_data = data[~np. isnan (data)]
方法 2:使用 isfinite()
new_data = data[np. isfinite (data)]
方法 3:使用逻辑_not()
new_data = data[np. logical_not (np. isnan (data))]
这些方法中的每一种都会产生相同的结果,但第一种方法的输入时间最短,因此最常使用。
以下示例展示了如何在实践中使用每种方法。
示例1:使用isnan()删除NaN值
以下代码展示了如何使用isnan()函数从 NumPy 数组中删除 NaN 值:
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[~np. isnan (data)]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
请注意,两个 NaN 值均已成功从 NumPy 数组中删除。
此方法仅保留所有不是 (~)NaN 值的数组元素。
示例2:使用isfinite()删除NaN值
以下代码展示了如何使用isfinite()函数从 NumPy 数组中删除 NaN 值:
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[np. isfinite (data)]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
请注意,两个 NaN 值均已成功从 NumPy 数组中删除。
此方法只是保留所有有限值的数组元素。
由于 NaN 值不是有限的,因此将它们从表中删除。
示例3:使用逻辑_not()删除NaN值
以下代码展示了如何使用逻辑_not()函数从NumPy数组中删除NaN值:
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[np. logical_not (np. isnan (data))]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
请注意,两个 NaN 值均已成功从 NumPy 数组中删除。
尽管此方法与前两种方法等效,但它需要更多的输入,因此不经常使用。
其他资源
以下教程解释了如何在 Python 中执行其他常见操作: