python中如何去除nan和inf
时间: 2023-05-30 14:04:04 浏览: 370
要从Python中的列表中删除NaN和inf,可以使用以下代码:
```python
import math
lst = [1, 2, 3, float('nan'), 4, 5, float('inf'), 6, 7, float('-inf'), 8]
lst = [x for x in lst if not (math.isnan(x) or math.isinf(x))]
print(lst)
```
输出:
```
[1, 2, 3, 4, 5, 6, 7, 8]
```
这里我们使用了math库中的isnan和isinf函数,分别用于判断是否是NaN和inf。使用列表推导式来创建一个新的列表,只包含非NaN和inf的元素。
相关问题
python inf转nan
在 Python 中,可以使用 numpy 库将 inf 转换为 nan。下面是一个示例代码:
```python
import numpy as np
x = np.array([1, 2, np.inf, 4])
x[x == np.inf] = np.nan
print(x)
```
输出结果为:
```
[ 1. 2. nan 4.]
```
在这个例子中,我们创建了一个包含 inf 的 numpy 数组 x,并使用 numpy 的 where 函数将所有的 inf 替换为 nan。最后打印出结果。
如果没有使用 numpy 库,你也可以使用 float('nan') 来将 inf 转换为 nan,例如:
```python
x = [1, 2, float('inf'), 4]
x = [float('nan') if i == float('inf') else i for i in x]
print(x)
```
输出结果为:
```
[1, 2, nan, 4]
```
在这个例子中,我们创建了一个列表 x,并使用列表推导式将所有的 inf 替换为 nan。最后打印出结果。
python inf 转 nan
在Python中,将正无穷(inf)转换为NaN可以使用以下方法:将inf与0进行乘法运算。当将inf乘以0时,会得到NaN。例如:
```
inf = float('inf')
nan = inf * 0
```
这样,inf就会被转换为NaN。请注意,这只适用于将inf转换为NaN的情况。其他数字与0相乘的结果仍然是0。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)