python inf转nan
时间: 2024-05-06 21:19:11 浏览: 5
在 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
在Python中,表示正无穷的方式是使用float('inf'),而表示负无穷的方式是使用float('-inf')。可以使用math.isinf()函数来判断一个数是否为无穷大。例如,math.isinf(float('inf'))的结果是True。另外需要注意的是,在Python中使用is和==操作符来判断一个对象是否是正负无穷或者NaN是不可靠的,最好使用math模块中的函数来进行判断。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
python中如何去除nan和inf
要从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的元素。