首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应为二维数组,但得到的是一维数组

应为二维数组,但得到的是一维数组
EN

Stack Overflow用户
提问于 2018-04-07 01:46:26
回答 1查看 542关注 0票数 1

尽管经过多次调试,该数组似乎是一个二维数组,但我还是收到了这个错误:

代码语言:javascript
复制
    reg = linear_model.SGDClassifier()
    X = []
    Y = []
    with open('data/legitimate.txt', 'r', encoding='utf8') as f:
        for line in f:
            X.append(get_heuristics(line))
            Y.append(0)

    with open('data/bad.txt', 'r', encoding='utf8') as f:
        for line in f:
            X.append(get_heuristics(line))
            Y.append(1)

    X = np.array(X)
    Y = np.array(Y)
    reg.fit(X, Y)

其中get_heuristics()返回一个一维数组。为什么会发生这样的事情?谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 18:23:27

X数组是二维数组。正如您正确地说过,getheuristics()返回一个一维数组,追加一个一维数组将生成一个二维数组。但是,由于Y仅为1D,因此将显示错误"Expected 2D array,got 1D array got“。毕竟,您每次只需追加一个数字,因此是一个一维数组。Scikit-learn的fit需要两个2D数组。正如我相信控制台会建议的那样,你可能想试一下:

Y= Y.reshape(-1,1)

在你调用reg.fit(X,Y)之前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49698418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档