【问题标题】:Importing sklearn error导入sklearn错误
【发布时间】:2017-05-04 03:31:41
【问题描述】:

所以我一直在尝试为我正在学习的课程安装 numpy、scipy 和 sklearn。经过许多问题和无数次尝试,我安装了 pycharm 并使用他们内置的包管理器来获取 numpy 和 scipy。我还安装了 sklearn,但是当我在代码中导入它时,出现以下错误:

Traceback (most recent call last):
  Python Shell, prompt 1, line 3
  File "C:\Users\Berges\AppData\Local\Programs\Python\Python35\Lib\site-packages\sklearn\__init__.py", line 57, in <module>
    from .base import clone
  File "C:\Users\Berges\AppData\Local\Programs\Python\Python35\Lib\site-packages\sklearn\base.py", line 12, in <module>
    from .utils.fixes import signature
  File "C:\Users\Berges\AppData\Local\Programs\Python\Python35\Lib\site-packages\sklearn\utils\__init__.py", line 11, in <module>
    from .validation import (as_float_array,
  File "C:\Users\Berges\AppData\Local\Programs\Python\Python35\Lib\site-packages\sklearn\utils\validation.py", line 18, in <module>
    from ..utils.fixes import signature
  File "C:\Users\Berges\AppData\Local\Programs\Python\Python35\Lib\site-packages\sklearn\utils\fixes.py", line 406, in <module>
    if np_version < (1, 12, 0):
builtins.TypeError: unorderable types: str() < int()

(我使用的是 python 3.5.2,当你在 bash 上运行 python3 时,我可以很好地导入 sklearn,但它似乎使用的是 python 3.4.3)

更新:

我安装了 Anaconda 并尝试从 Wing IDE 和 Atom 运行以下代码:

import numpy as np
X = np.array([[-1,-1],[-2,-1],[-3.-2],[1,1],[2,1],[3,2]])
Y = np.array([1,1,1,2,2,2])
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(X,Y)
print(clf.predict([[-0.8,-1]]))

然后我得到以下错误:

Traceback (most recent call last):
  File "C:\Users\Berges\Downloads\test.py", line 6, in <module>
    clf.fit(X,Y)
  File "C:\Users\Berges\Anaconda3\lib\site-packages\sklearn\naive_bayes.py", line 173, in fit
    X, y = check_X_y(X, y)
  File "C:\Users\Berges\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 510, in check_X_y
    ensure_min_features, warn_on_dtype, estimator)
  File "C:\Users\Berges\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 373, in check_array
    array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: setting an array element with a sequence.

【问题讨论】:

    标签: python numpy scipy scikit-learn pycharm


    【解决方案1】:

    如果您只是想为一门课程启动并运行一些东西,并且想让它在 Windows 上运行。然后我建议你安装 anaconda 包管理器。它在 Windows 上运行起来就像轻而易举,并且非常易于安装,并且包含所有必要的软件包(您不必担心版本不匹配等一切)。

    安装 anaconda manager 后,将 pycharm 解释器位置更改为 anaconda 安装的 python 解释器。

    链接:https://www.continuum.io/downloads 可用包列表:https://docs.continuum.io/anaconda/pkg-docs

    【讨论】:

    【解决方案2】:

    您错过了导致此错误的一个小细节。

    在 X 数组中输入 [-3. -2] 而不是 [-3, -2]

    所以你漏掉了一个逗号。

    以下工作正常:

    import numpy as np
    
    X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
    Y = np.array([1, 1, 1, 2, 2, 2])
    
    from sklearn.naive_bayes import GaussianNB
    clf = GaussianNB()
    clf.fit(X, Y)
    
    print(clf.predict([[-0.8, -1]]))
    

    结果:

    [1]
    

    【讨论】:

      猜你喜欢
      • 2017-05-16
      • 2016-10-03
      • 2019-07-11
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多