Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 无序类型:str()<;int()_Python 3.x_Pandas_Numpy - Fatal编程技术网

Python 3.x 无序类型:str()<;int()

Python 3.x 无序类型:str()<;int(),python-3.x,pandas,numpy,Python 3.x,Pandas,Numpy,我使用pandas、numpy和sklearn设计了一个基本的垃圾邮件分类器程序(Python3),但我遇到了这个错误,无法确定在哪里。我试图查看不同变量的数据类型,但没有找到位置。(火腿=不是垃圾邮件)。输入文件与此错误无关,因为它使用的是python 2.7 其包/模块兼容性或数据类型转换错误 import os import io import numpy from pandas import DataFrame from sklearn.feature_extraction.text i

我使用pandas、numpy和sklearn设计了一个基本的垃圾邮件分类器程序(Python3),但我遇到了这个错误,无法确定在哪里。我试图查看不同变量的数据类型,但没有找到位置。(火腿=不是垃圾邮件)。输入文件与此错误无关,因为它使用的是python 2.7 其包/模块兼容性或数据类型转换错误

import os
import io
import numpy
from pandas import DataFrame
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB

def readFiles(path):
    for root, dirnames, filenames in os.walk(path):
        for filename in filenames:
            path = os.path.join(root, filename)

            inBody = False
            lines = []
            f = io.open(path, 'r', encoding='latin1')
            for line in f:
                if inBody:
                    lines.append(line)
                elif line == '\n':
                    inBody = True
            f.close()
            message = '\n'.join(lines)
            yield path, message


def dataFrameFromDirectory(path, classification):
    rows = []
    index = []
    for filename, message in readFiles(path):
        rows.append({'message': message, 'class': classification})
        index.append(filename)

    return DataFrame(rows, index=index)

data = DataFrame({'message': [], 'class': []})

data = data.append(dataFrameFromDirectory('D:/emails/spam', 'spam'))
data = data.append(dataFrameFromDirectory('D:/emails/ham', 'ham'))
来自ipython笔记本的堆栈跟踪:

TypeError                                 Traceback (most recent call last)
<ipython-input-5-555887356cc2> in <module>()
      3 import numpy
      4 from pandas import DataFrame
----> 5 from sklearn.feature_extraction.text import CountVectorizer
      6 from sklearn.naive_bayes import MultinomialNB
      7 

c:\users\administrator\appdata\local\programs\python\python35-32\lib\site-packages\sklearn\__init__.py in <module>()
     55 else:
     56     from . import __check_build
---> 57     from .base import clone
     58     __check_build  # avoid flakes unused variable error
     59 

c:\users\administrator\appdata\local\programs\python\python35-32\lib\site-packages\sklearn\base.py in <module>()
     10 from scipy import sparse
     11 from .externals import six
---> 12 from .utils.fixes import signature
     13 from .utils.deprecation import deprecated
     14 from .exceptions import ChangedBehaviorWarning as _ChangedBehaviorWarning

c:\users\administrator\appdata\local\programs\python\python35-32\lib\site-packages\sklearn\utils\__init__.py in <module>()
      9 
     10 from .murmurhash import murmurhash3_32
---> 11 from .validation import (as_float_array,
     12                          assert_all_finite,
     13                          check_random_state, column_or_1d, check_array,

c:\users\administrator\appdata\local\programs\python\python35-32\lib\site-packages\sklearn\utils\validation.py in <module>()
     16 
     17 from ..externals import six
---> 18 from ..utils.fixes import signature
     19 from .deprecation import deprecated
     20 from ..exceptions import DataConversionWarning as _DataConversionWarning

c:\users\administrator\appdata\local\programs\python\python35-32\lib\site-packages\sklearn\utils\fixes.py in <module>()
    404 
    405 
--> 406 if np_version < (1, 12, 0):
    407     class MaskedArray(np.ma.MaskedArray):
    408         # Before numpy 1.12, np.ma.MaskedArray object is not picklable

TypeError: unorderable types: str() < int()
TypeError回溯(最近一次调用)
在()
3进口numpy
4从熊猫导入数据帧
---->5来自sklearn.feature\u extraction.text import countvectorier
6从sklearn.naiver_bayes导入多项式nb
7.
c:\users\administrator\appdata\local\programs\python\python35-32\lib\site packages\sklearn\\uuuuu init\uuuuu.py in()
55.其他:
56来自。导入检查生成
--->57.从基本导入克隆
58 uu检查u构建#避免薄片未使用变量错误
59
c:\users\administrator\appdata\local\programs\python\python35-32\lib\site packages\sklearn\base.py in()
10从scipy导入稀疏
11.外部导入6
--->12 from.utils.fixes导入签名
13 from.utils.deprecation导入已弃用
14从异常导入ChangedBehaviorWarning作为_ChangedBehaviorWarning
c:\users\administrator\appdata\local\programs\python\python35-32\lib\site packages\sklearn\utils\\uuuu init\uuuuuuuuuu.py in()
9
10从Murrushash导入Murrushash 3_32
--->11.从验证导入(作为浮点数组,
12断言所有有限,
13检查\u随机\u状态,列\u或\u 1d,检查\u数组,
c:\users\administrator\appdata\local\programs\python\python35-32\lib\site packages\sklearn\utils\validation.py in()
16
17从外部导入6
--->18 from..utils.fixes导入签名
19.不推荐导入不推荐导入
20从..异常将DataConversionWarning导入为_DataConversionWarning
c:\users\administrator\appdata\local\programs\python\python35-32\lib\site packages\sklearn\utils\fixes.py in()
404
405
-->406如果np_版本<(1,12,0):
407类面具(np.ma.MaskedArray):
408#在numpy 1.12之前,np.ma.MaskedArray对象不可拾取
TypeError:无序类型:str()
与我的版本集-相对较新,但不是最前沿:

In [509]: import sklearn
In [510]: sklearn.__version__
Out[510]: '0.17'
In [511]: np.__version__
Out[511]: '1.11.2'
In [512]: sklearn.utils.fixes._parse_version(np.__version__)
Out[512]: (1, 11, 2)
In [513]: sklearn.utils.fixes._parse_version(np.__version__)<(1,12,0)
Out[513]: True
在Andras链接之后,问题在于
numpy
版本号。如果numpy是新的beta版,则版本号的
0b1
部分会导致此测试问题

In [517]: sklearn.utils.fixes._parse_version('1.12.0b1')<(1,12,0)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-517-a2d159f6d08a> in <module>()
----> 1 sklearn.utils.fixes._parse_version('1.12.0b1')<(1,12,0)

TypeError: unorderable types: str() < int()

[517]中的
:sklearn.utils.fixes.\u parse_version('1.12.0b1')1 sklearn.utils.fixes.\u parse_version('1.12.0b1')和我的版本集-相对较新,但不是最前沿:

In [509]: import sklearn
In [510]: sklearn.__version__
Out[510]: '0.17'
In [511]: np.__version__
Out[511]: '1.11.2'
In [512]: sklearn.utils.fixes._parse_version(np.__version__)
Out[512]: (1, 11, 2)
In [513]: sklearn.utils.fixes._parse_version(np.__version__)<(1,12,0)
Out[513]: True
在Andras链接之后,问题在于
numpy
版本号。如果numpy是新的beta版,则版本号的
0b1
部分会导致此测试问题

In [517]: sklearn.utils.fixes._parse_version('1.12.0b1')<(1,12,0)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-517-a2d159f6d08a> in <module>()
----> 1 sklearn.utils.fixes._parse_version('1.12.0b1')<(1,12,0)

TypeError: unorderable types: str() < int()

[517]中的
:sklearn.utils.fixes.\u parse\u version('1.12.0b1')1 sklearn.utils.fixes.\u parse\u version('1.12.0b1'))您应该发布得到的完整错误。发布堆栈跟踪。尝试设计一个。我们也没有您的数据文件,因此无法运行您的代码来重现您的错误。如果您是python新手,您应该先学习该语言的基础知识,然后再使用诸如sklearn之类的高级框架。这可能有助于调试错误。我怀疑包中存在不匹配版本。可能是
numpy
scipy
sklearn
和/或
pandas
预期的要旧。错误在
sklearn
导入中,而不是在您自己的代码中。您应该发布得到的完整错误。发布堆栈跟踪。尝试设计一个。我们也没有您的数据文件,因此无法运行您的代码会重现错误。如果您是python新手,在使用sklearn之类的高级框架之前,您应该先学习该语言的基础知识。这可能有助于调试错误。我怀疑包版本不匹配。可能是
numpy
scipy
sklearn
和/或
预期。错误在
sklearn
导入中,而不是在您自己的代码中。经过hpaulj的一些研究和帮助,我发现我安装了numpy1.12.0rc1。因此我卸载了它,下载了1.11.3+mkl预编译并安装了它。成功了!!感谢@hpauljI普遍同意“否决票对糟糕的OP不公平”情绪,但没有包含回溯,也不清楚错误来自何处。代码远不止是一个MCVE,通读它我找不到问题来自何处。(奇怪的是,我实际上没有否决这个问题。)整整两个小时!我从3点开始回答,所以我不知道最初的版本有多可怕。由于来自世界各地的人在不同的时间发表文章,我尽量保持耐心。经过hpaulj的一些研究和帮助,我发现我安装了numpy1.12.0rc1。所以我卸载了它,并下载了1.11.3+mkl预编译和installed it.Worked!!Thank@hpauljI’我大体上同意“否决票对差劲的OP不公平”的观点,但没有包含回溯,也不清楚错误来自何处。代码远不止一个MCVE,通读它我找不到问题的根源。(奇怪的是,我实际上并没有否决这个问题。)整整两个小时!我从3点开始回答,所以没有看到最初的版本有多可怕。由于来自世界各地的人在不同的时间发表帖子,我尽量保持耐心。