python如何去掉数组中为None的值
时间: 2024-02-19 09:03:51 浏览: 91
在Python中,可以使用列表推导式的方式来去掉列表或数组中的None值。以下是示例代码:
```python
original_list = [1, 2, None, 4, None, 5]
# 使用列表推导式过滤None值
new_list = [item for item in original_list if item is not None]
print(new_list) # [1, 2, 4, 5]
```
这个例子中,我们首先定义了一个包含None值的原始列表`original_list`。然后,我们使用列表推导式`[item for item in original_list if item is not None]`,遍历原始列表中的每个元素,如果元素不是None,则添加到新的列表中。最后,我们输出新的列表,其中已经去掉了None值,结果为`[1, 2, 4, 5]`。
如果你想要修改一个NumPy数组来去掉None值,可以使用NumPy库中的`numpy.ndarray`对象的`numpy.isnan()`方法。以下是示例代码:
```python
import numpy as np
original_array = np.array([1, 2, None, 4, None, 5])
# 使用numpy.isnan()方法过滤None值
new_array = original_array[~np.isnan(original_array)]
print(new_array) # [1. 2. 4. 5.]
```
这个例子中,我们首先定义了一个包含None值的NumPy数组`original_array`。然后,我们使用`numpy.isnan()`方法,将返回一个布尔数组,其中为True的位置表示对应的元素是NaN或None值。接着,我们使用`~`符号取反布尔数组,将True变为False,False变为True,用于过滤掉原始数组中的None值。最后,我们输出新的数组,其中已经去掉了None值,结果为`[1. 2. 4. 5.]`。
阅读全文