2015-08-14 19 views
1
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 

爲什麼替換功能不能在第一print語句轉換0.01-3?

+3

平等的。如果你是比較浮點數平等,**你就要有一個壞的時間。**它可能是也可能不是這裏的問題這這裏是問題。 –

回答

8

我認爲這是創建x時的浮點錯誤。它很難比較兩個浮點數是否喜歡這個

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 
相關問題