0
が含まれています、私は次のコードStandardScaler -ValueError:入力がNaN、無限大またはDTYPEのためにあまりにも大きな値( 'のfloat64')
X = df_X.as_matrix(header[1:col_num])
scaler = preprocessing.StandardScaler().fit(X)
X_nor = scaler.transform(X)
を持っており、次のエラー得た:
File "/Users/edamame/Library/python_virenv/lib/python2.7/site-packages/sklearn/utils/validation.py", line 54, in _assert_all_finite
" or a value too large for %r." % X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
を
私が使用:
私に与えprint(np.isinf(X))
print(np.isnan(X))
を以下の出力。これは、私に何百万行もの行があるので、どの要素に問題があるのかを本当に教えてくれませんでした。
[[False False False ..., False False False]
[False False False ..., False False False]
[False False False ..., False False False]
...,
[False False False ..., False False False]
[False False False ..., False False False]
[False False False ..., False False False]]
マトリックスXのどの値が実際に問題を引き起こすのかを特定する方法はありますか?人々はそれを一般的にどのように避けますか?
おかげでここでは簡単な例です。上記の私の変更された質問を参照してください、私は何百万ものレコードから特定の悪い値を見つける必要があります...良いアプローチはありますか? – Edamame
私の更新された回答を参照してください - これが役立つことを願っています。 – Thomite
print( 'bad_indices'、np.where(np.isinf(X)))から、実際には:( 'bad_indices'、(配列([]、dtype = int64)、配列([]、dtype = int64) )...インデックスを返しませんでした... – Edamame