Pendant que j'itère dans une boucle for, je reçois continuellement le même avertissement, que je souhaite supprimer. L'avertissement se lit comme suit:
C: \ Users \ Nick Alexander \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ sklearn \ preprocessing \ data.py: 193: UserWarning: Des problèmes numériques ont été rencontrés lors de la mise à l'échelle des données et pourrait ne pas être résolu. L'écart type des données est probablement très proche de 0. warnings.warn ("Des problèmes numériques ont été rencontrés"
Le code qui génère l'avertissement est le suivant:
< pre> XXXJe désactive déjà un avertissement. Je ne veux pas désactiver tous les avertissements, je veux simplement désactiver cet avertissement. J'utilise python 3.7 et sklearn version 0.0
p>3 Réponses :
Essayez ceci au début du script:
import warnings warnings.filterwarnings("ignore", message="Numerical issues were encountered ")
Le contextlib python a un contextmamager pour cela: supprimer a > from contextlib import suppress
with suppress(UserWarning):
for c in cols:
df_train[c] = df_train_grouped[c].transform(lambda x: scale(x.astype(float)))
df_val[c] = df_val_grouped[c].transform(lambda x: scale(x.astype(float)))
Je pense que contextlib.suppress ne fonctionne qu'avec des exceptions, c'est-à-dire que c'est fondamentalement comme un gros bloc try
import warnings with warnings.catch_warnings(): warnings.simplefilter('ignore') # code that produces a warning warnings.catch_warnings() means "whatever warnings. methods are run within this block, undo them when exiting the block".
Cela peut être utile: stackoverflow.com/questions/9134795/...
Double possible de Comment se débarrasser des messages d'avertissement spécifiques en python tout en conservant tous les autres avertissements comme d'habitude?