请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师请问为什么这个np.ones说是data type不认识?

//img1.sycdn.imooc.com//szimg/5b28edda0001fb2a22320900.jpg

这样就报错,但是单独拿出来就可以

//img1.sycdn.imooc.com//szimg/5b28ee550001727d06540132.jpg

https://img1.sycdn.imooc.com//szimg/5b28f296000155fb05380378.jpg

https://img1.sycdn.imooc.com//szimg/5b28f298000102a606120238.jpg

以下是我的LR的代码

//img1.sycdn.imooc.com//szimg/5b28f1ea000102f914101284.jpg

我把这个np.ones((len(x_train), 1))组成的全1的矩阵单独拿出来了。

最后还有一个问题就是我不能在pycharm里面run这个LinearRegression.py文件,因为说导入这个metrics.py是有问题的,这是为什么呢?不能用 import .metrics  要用 import metrics,不能加点;但是不用点就在notebook里面就过不了。是不是我之前没认真听课,没印象老师讲过这个区别。请老师解惑!

正在回答

1回答

1)

我目测没有看出原因。请尝试下载课程的官方代码在你的环境下运行看是否有问题?如果没有问题请仔细比对(或者逐模块替换)看一下你的代码哪里有问题?课程官方代码传送门:https://github.com/liuyubobobo/Play-with-Machine-Learning-Algorithms


2)

由于这个课程不是Python的语法课程,所以对这个问题没有介绍。

简单回答如下:


直接import metrics可以理解成在当前运行环境中找metrics;

import .metrics相当于是相对路径,在当前你创建的模块下寻找metrics

注意:当前的运行环境和当前模块是两个概念。

对于Python来说,__main__和你设置的模块不在一个运行环境里,即使这个__main__的代码写在了你的模块文件中,但是从运行的角度是分离的,__main__称为top level enviroment。


所以,如果你写了import .metrics,在__main__中运行,就会寻找__main__.metrics,肯定找不到,就报错了。

但是你写import metrics,在模块外面运行的话,模块的其他文件没有加载进环境,会找不到metrics。


所以,模块中互相依赖的文件,import的时候要用.metrics,这是正确的模块编写方式。

但是不要在模块内部测试模块!要在模块外部测试模块。也就是你的__main__必须在模块的外面作为模块的使用者。


可以参考这个问答:https://coding.imooc.com/learn/questiondetail/52848.html

0 回复 有任何疑惑可以回复我~
  • 提问者 xue109196 #1
    OK好的我去试一下官方代码。刚学python,就会写个类和方法什么的,谢谢老师?这下全明白了。
    回复 有任何疑惑可以回复我~ 2018-06-21 19:01:49
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号