《python机器学习经典实例》Expected 2D array, got 1D array instead和Reshape your data either using array.问题(已解决)

问题描述:

ValueError: Expected 2D array, got 1D array instead:
array=[2.  1.5].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

自己最初改这个bug的时候重点关注了第二点,然后各种百度、百度、百度。

一般的解决办法都是人家提示的修改建议:数组后面添加reshape(1,-1).  

但是这个方法并不能解决我的问题,即使reshape之后,还会报同样的错。

这就提示我们:要认真一点,看所有的报错信息,这时发现了第一点问题:

即真正的问题出在:

 print(i, '-->', classifier.decision_function(i)[0])

这行语句。

问题分析:python版本问题

如果跟的是《python机器学习经典实例》这本书(版本是python2.x ),而自己的版本是3.x的,就会出现很多小问题需要改。让人头疼的是很多时候,这类型的bug不容易发现,也没有修改建议。比如这个题,爆出了第一个错误,但是没给具体错误原因,也没有修改建议,让人直接忽略,以为是第二个报错,做了半天无用功。

问题解决:

将提示出错的语句改成下面:

 print(i, '-->', classifier.decision_function([i])[0])

注意区别:i ——>[i]

 

测试成功!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

allein_STR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值