Skip to main content
 首页 » 编程设计

python之为什么我的替换函数有错误

2025年05月04日11soundcode

import numpy as np 
import pandas as pd 
x = np.linspace(-0.02, 0.02, 5) 
print pd.Series([-0.02, 0.02, -0.01, 0.01, 0.02]).replace(x, np.arange(0, 5)) 
print pd.Series([-0.02, 0.02, -0.01, 0.01, 0.02]).replace([-0.02, -0.01, 0, 0.01, 0.02], [0, 1, 2, 3, 4]) 

结果是:

0      0.00   
1      4.00   
2      1.00   
3      0.01   
4      4.00 
dtype: float64     
 
0      0   
1      4   
2      1   
3      3   
4      4   
dtype: float64   

为什么替换函数不能在第一个打印语句中将 0.01 转换为 3?

请您参考如下方法:

我认为这是创建x 时的浮点错误。很难像这样比较 float 是否相等

import numpy as np 
x = np.linspace(-0.02, 0.02, 5) 
 
print x 
# [-0.02 -0.01  0.    0.01  0.02] 
 
0.01 in x 
# False 
 
print x[3] 
# 0.0099999999999999985 
 
print x[4] 
# 0.02