Игнорировать предупреждения из модулей Python (seaborn, sklearn) - PullRequest
0 голосов
/ 23 мая 2019

Есть много вопросов, связанных с заголовком вопроса выше, и все в основном говорят вам:

import warnings
warnings.filterwarnings('ignore')

и убедитесь, что он помещен перед первым импортом.

Однако даже после этого я получаю много предупреждений от seaborn и sklearn. Я получаю UserWarning, DataConversionWarning и RuntimeWarning, которые, согласно документации, все наследуются от Warning и должны охватываться приведенным выше кодом.

Есть ли другой способ скрыть эти предупреждения? (Я все равно не могу решить большинство из них)

EDIT

Пример 1:

C:\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py:645: DataConversionWarning: Data with input dtype int32, int64 were all converted to float64 by StandardScaler.
  return self.partial_fit(X, y)

Пример 2

C:\Anaconda3\lib\site-packages\seaborn\distributions.py:340: UserWarning: Attempted to set non-positive bottom ylim on a log-scaled axis.
Invalid limit will be ignored.
  ax.set_ylim(0, auto=None)

1 Ответ

1 голос
/ 23 мая 2019

Example2

Это немного сложно отследить; seaborn импортирует statsmodels. И в statsmodels/tools/sm_exceptions.py вы найдете эту строку

warnings.simplefilter('always', category=UserWarning)

, при котором отменяются все предыдущие настройки для предупреждений пользователя.

На данный момент решением будет удалить эту строку или установить состояние предупреждения после импорта seaborn (и, следовательно, statsmodels). В будущей версии statsmodels это будет исправлено PR 4712 , поэтому использование версии statsmodels для разработки также будет возможным.

Example1

Я не нашел способа воспроизвести первый пример из sklearn; так что может иметь или не иметь другую причину.

...