numpy 利用np.std() 計算出現 inf
計算的數據集,df的數據如下:
# df是上百行幾十列的數據# 分別對df求期望和均質 df_numpy = np.array(df,dtype=np.float16) df_numpy_mean = np.mean(df_numpy) # --> 3740.0 df_numpy_std = np.std(df_numpy) # -->inf
計算的std的結果為inf,應該是數據溢出了,把dtype 改為 float64 ,結果就出來了
# df是上百行幾十列的數據# 分別對df求期望和均質 df_numpy = np.array(df,dtype=np.float64) df_numpy_mean = np.mean(df_numpy) # --> 3740.0154 df_numpy_std = np.std(df_numpy) # -->321.3843
可以看出,不同的數據精度,計算的結果的精度也是不一樣的,至於溢出的問題,應該是np在計算的時候,會先在原來的數據上進行操作,最後再合併輸出結果,溢出是在原始數據上發生的。
ps. 如果不對dtype進行設置的話,結果也是準確的。