Ich habe den folgenden CodeStandardScaler -ValueError: Input enthält NaN, Infinity oder einen Wert zu groß für dtype ('float64')
X = df_X.as_matrix(header[1:col_num])
scaler = preprocessing.StandardScaler().fit(X)
X_nor = scaler.transform(X)
Und bekam folgende Fehler:
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').
I verwendet:
print(np.isinf(X))
print(np.isnan(X))
, die mir gibt die Ausgabe unten. Dies konnte mir nicht wirklich sagen welches Element Probleme hat, da ich Millionen von Zeilen habe.
[[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]]
Gibt es eine Möglichkeit zu identifizieren, welcher Wert in der Matrix X tatsächlich das Problem verursacht? Wie vermeiden Menschen es im Allgemeinen?
Dank. Bitte sehen Sie meine modifizierte Frage oben, ich muss die spezifischen schlechten Werte aus Millionen von Datensätzen finden ... gibt es einen guten Ansatz? – Edamame
Siehe meine aktualisierte Antwort - hoffe das hilft. – Thomite
Ich habe tatsächlich: ('bad_indices', (array ([], dtype = int64), array ([], dtype = int64)) von print ('bad_indices', np.where (np.isinf (X))) ... hat keinen Index zurückgegeben ... – Edamame