使用KDE分析出現ZeroDivisionError: 0.0 cannot be raised to a negative power錯誤
針對每個columns屬於int64與float64 , 進行 KDE分析
numeric_columns = list(app_train.columns[list(app_train.dtypes.isin([np.dtype('int64'),np.dtype('float64')]))])
import seaborn as sns
for col in numeric_columns:
plt.figure(figsize = (10, 8))
value = app_train[col].values
sns.kdeplot(( value - np.mean(value) ) / ( np.std(value) ), label = col)
plt.show()
當跑到 'AMT_ANNUITY' 下列出現錯誤, 請問可能的原因 ?
C:\Users\pingh\Anaconda3\lib\site-packages\statsmodels\nonparametric\kde.py:448: RuntimeWarning: invalid value encountered in greater X = X[np.logical_and(X > clip[0], X < clip[1])] # won't work for two columns.
C:\Users\pingh\Anaconda3\lib\site-packages\statsmodels\nonparametric\kde.py:448: RuntimeWarning: invalid value encountered in less X = X[np.logical_and(X > clip[0], X < clip[1])] # won't work for two columns.
C:\Users\pingh\Anaconda3\lib\site-packages\numpy\core\_methods.py:140: RuntimeWarning: Degrees of freedom <= 0 for slice keepdims=keepdims)
C:\Users\pingh\Anaconda3\lib\site-packages\numpy\core\_methods.py:110: RuntimeWarning: invalid value encountered in true_divide arrmean, rcount, out=arrmean, casting='unsafe', subok=False) C:\Users\pingh\Anaconda3\lib\site-packages\numpy\core\_methods.py:132: RuntimeWarning: invalid value encountered in double_scalars ret = ret.dtype.type(ret / rcount)
C:\Users\pingh\Anaconda3\lib\site-packages\statsmodels\nonparametric\bandwidths.py:20: RuntimeWarning: invalid value encountered in minimum return np.minimum(np.std(X, axis=0, ddof=1), IQR)
--------------------------------------------------------------------------- ValueError
ZeroDivisionError: 0.0 cannot be raised to a negative power
回答列表
-
2019/04/29 下午 09:17Seanyu.TW贊同數:0不贊同數:0留言數:0
Hi, 應該是因為 np.std(value) 的結果得到了 0 (原因可能出自數列裡有 na 沒有清掉,有的 numpy 版本會報錯,有的可能則會算出 0, 也許是個 bug)
所以建議你可以在 value = app_train[col].values 之後,加上 value = value[~np.isnan(value)] 再跑看看。
-
2019/04/29 下午 09:18Seanyu.TW贊同數:0不贊同數:0留言數:0
而 ZeroDivisionError 的實際意義,是除法中的分母為 0。建議你可以參考https://extenshu.com/2017/09/24/python%E5%88%9D%E5%AD%B8%E9%87%8D%E9%BB%9E-05-%E4%BE%8B%E5%A4%96%E8%99%95%E7%90%86/