弃用警告:numpy.core.umath_tests

时间:2018-08-23 12:58:55

标签: python scikit-learn

我正在尝试在下面运行此python脚本:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score from sklearn.metrics import confusion_matrix

它给了我下面的错误。

  

警告(来自警告模块):文件   “ C:\ Users \ Dipali \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ sklearn \ ensemble \ weight_boosting.py”,   numpy.core.umath_tests的第29行导入inner1d   DeprecationWarning:numpy.core.umath_tests是一个内部NumPy模块   并且不应该导入。它将在以后的NumPy中删除   释放。

我需要做什么?

2 个答案:

答案 0 :(得分:2)

您可以通过以下方式忽略警告

示例1:

#!/usr/bin/env python -W ignore::DeprecationWarning

示例2:

import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning) 

示例3:

import warnings

def fxn():
    warnings.warn("deprecated", DeprecationWarning)

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    fxn()

答案 1 :(得分:1)

好的,这是Python 3.x的弃用警告。
因为,这是在警告您的代码将正常运行。 这不是错误 (当代码由于正常降级而停止运行时)。

解决此错误的方法如下:

  1. 据我所知,您已经安装了Scikit-Learn版本0.19.2,需要获取最新版本。为此,请输入以下命令
    pip3 install --force-reinstall scikit-learn==0.20rc1
    这将安装scikit-learn,scipy和numpy的最新版本。您的弃用警告现在将不存在。

  2. 尽管您接下来会收到新的警告。这次是关于scikit-learn库中名为cloudpickle \sklearn\externals\joblib\externals\cloudpickle\cloudpickle.py的文件。
    要克服此警告,您必须编辑python向我们显示的代码。
    只需对文件执行sudo idle3并编辑以下行:
    import imp
    from imp import find_module

    { {1}}
    接下来转到功能import importlib,并将行
    find_module
    更改为
    file, path, description = find_module(path)

这必须解决scikit-learn库中的弃用警告。